我正在尝试使用jQuery验证插件通过使用自定义add.method验证一些表单字段,我需要一些帮助。 这是我的html表单。
<form method="post" action="<?=$PHP_SELF?>" name="sf" id="sf">
<p>
<label for="name">Name:</label>
<input type="text" name="name" id="name" /><br />
</p>
<p>
<label for="email">Email:</label>
<input type="text" name="email" id="email" /><br />
</p>
</form>
基本上我正在尝试一个非常基本的规则来检查Name字段是否为空。 我正在尝试关注,请告诉我它是否正确?
<script type="text/javascript">
$(document).ready(function() {
$.validator.addMethod("name",function(value,element){
return this.optional(element) || (i.test(value) > 0);
},"Name is required");
$("#sf").validate({
rules: {
name: true,
},
});
});
</script>
我想在表单的“名称”字段前面显示名称错误消息。我怎么能这样做?谢谢你的帮助。
答案 0 :(得分:6)
如果您只想制作表单元素,则应在元素上添加一个类required
:
<input type="text" name="name" id="name" class="required" />
这将通过验证自动获取。
如果您这样做只是为了弄清楚如何添加自定义规则,我建议不要使用名为“name”的规则(我在一个简单的例子中遇到了问题)。以下是如何添加自定义规则以确保“名称”仅为字符:
$.validator.addMethod("customname", function(value, element) {
var i = /^[A-Za-z]+$/;
return this.optional(element) || (i.test(value) > 0);
}, "Name is required");
$("#sf").validate({
rules: {
name: {
customname: true
}
}
});
请注意,在rules
对象中,您必须指定另一个对象(name
),该对象定义该元素的规则。
至于将错误放在特定位置,请查看errorPlacement
选项:
errorPlacement: function(error, element) {
element.closest("p").prepend(error);
}
将错误放在标签和input
。
以下是两个实际操作的示例:http://jsfiddle.net/andrewwhitaker/7xD2H/
答案 1 :(得分:0)
这将完成你想要做的事情:
$(document).ready( function() {
$('#sf').validate();
$("#name").rules("add", {
required: true,
minlength: 0,
messages: {
required: "Name is required"
}
});
});