有一个基本的注册表单,试图验证它。
我正在使用表单serializeArray()
方法并通过表单循环并查找值是否为空。
HTML CODE
<form name="reg" id="regform">
<fieldset>
<label for="firstname">First Name</label>
<input type="text" name="firstname" value="First Name"/>
</fieldset>
<fieldset>
<label for="lastname">Last name</label>
<input type="text" name="lastname" value="Last Name"/>
</fieldset>
<fieldset>
<label for="date">Age</label>
<input type="text" name="age"/>
</fieldset>
</form>
JQUERY代码
var formElements = $("#regform").serializeArray();
$(formElements).each(function(x)
{
if(formElements[x]["value"] == "")
{
$("[name='" + formElements[x]['name'] +"']").addClass('error');
}
});
从上面的代码中,我可以在值为null时添加类“.error”。
现在我希望代码检查文本字段值不是默认值,就像我的情况一样,默认值是“名字”“姓氏”..
所以我想检查默认值并将错误类添加到相应的元素,甚至将光标聚焦回第一个空值文本字段
提前致谢
答案 0 :(得分:0)
我强烈建议您使用http://docs.jquery.com/Plugins/Validation。您可以测试各种事物,例如空白值,甚至可以扩展它以检测默认值。
例如:
$.validator.addMethod("name", function(value) {
return value != "First Name";
}, 'Please enter your first name.');
或者,您可以使用jQuery's data()
函数测试默认值:
工作演示:http://jsfiddle.net/WpQ2n/2/
var input = $(".name"),
defaultval = input.data("default", input.val());
// Can't submit forms in jsfid, so i just used a click event.
// Change to .submit()
$("input[type='submit']").on("click",function(e){
if(input.val()== input.data("default")){
input.addClass("error");
}
else{
// Yay it validated...
input.removeClass("error");
}
e.preventDefault();
});