function checkFunc(reg, valid, invalid){
var div_next=$(this).parents('td').next();
if($(this).val()!==""){
var val_this=$(this).val();
if(!reg.test(val_this)) {
$(this).css("border-color","red");
div_next.text(invalid);
}
else{
$(this).css("border-color","green");
div_next.text(valid);
}
}
return this;
}
вот так я ее использую:
$("#name").change(checkFunc(/^[a-zA-Z0-9]+$/, 'valid', 'invalid'));
но ничего не происходит, а в консоли выводит "script error". в чем проблема, я не знаю, но вот так все получается:
$("#name").change(function(){
t=/^[a-zA-Z0-9]+$/;
var div_next=$(this).parents('td').next();
if($(this).val()!==""){
var val_this=$(this).val();
if(!t.test(val_this)) {
$(this).css("border-color","red");
div_next.text('invalid');
}
else{
$(this).css("border-color","green");
div_next.text('valid');
}
}
return this;
});
а мне так не нужно, т.к. функцию придется вызывать не один раз. в чем проблема? помогите, пожалуйста. заранее спасибо!
вот текст хтмл:
<table id="reg_form">
<tr>
<td><p>Enter your name:</p></td>
<td><input id="name" name="name" type="text"/></td>
<td><div class="forCheck"></div></td>
</tr>
<tr>
<td><p>Enter your surname:</p></td>
<td><input id="surname" name="surname" type="text"/></td>
<td><div class="forCheck"></div></td>
</tr>
<tr>
<td><p>Enter e-mail:</p></td>
<td><input id="mail" name="mail" type="text"/></td>
<td><div class="forCheck"></div></td>
</tr>
<tr>
<td><p>Enter your hometown:</p></td>
<td><input id="hometown" name="hometown" type="text"/></td>
<td><div class="forCheck"></div></td>
</tr>
<tr>
<td><p>Enter your age:</p></td>
<td><input id="age" name="age" type="text"/></td>
<td><div class="forCheck"></div></td>
</tr>
<tr>
<td><p>Enter password:</p></td>
<td><input id="pass" name="pass" type="password"/></td>
<td><div class="forCheck"></div></td>
</tr>
<tr>
<td><p>Repeat password:</p></td>
<td><input id="rpass" name="rpass" type="password"/></td>
<td><div class="forCheck"></div></td>
</tr>
<tr>
<td><input id="submit" type="submit" disabled="disabled"/></td>
<td></td>
</tr>
</table>