我正在使用jquery来验证asp.net表单(母版页中的内容)。所需的字段验证都很有效,但我有一个不所需的字段,但如果它有文本则需要采用正确的格式。 Jquery验证错误的文本就好了,但是当文本为空时它会停止提交表单(尽管没有错误消息)。任何人都知道为什么会发生这种情况或该怎么办?
// Add validation rule for email
if ($("input[id$='TextBoxEmail']").length) {
$("input[id$='TextBoxEmail']").rules('add', {
required: false,
email: true,
messages: {
email: 'Please enter a valid email.'
}
});
}
答案 0 :(得分:0)
我刚刚设置了类似的测试,无法复制该问题(请参阅下面的代码):
<script type="text/javascript">
$(document).ready(function () {
$("#test").validate();
if ($("input[id$='txtText']").length) {
$("input[id$='txtText']").rules('add', {
required: false,
email: true,
messages: {
email: 'Please enter a valid email.'
}
});
}
});
</script>
<form id="test">
<input type="text" id="txtText" />
<input type="submit" />
</form>
我正在使用jQuery 1.5.1和最新的jquery.validate.min.js
我只能建议您使jQuery选择器更具体,因为id$='TextBoxEmail'
表示以'TextBoxEmail'结尾。如果您的字段名称冲突,这可能会出现问题吗?
答案 1 :(得分:0)
我们发现解决方法是根据我们的标准手动删除验证。
// Add validation rule for first name (default Person type is Individual so the validation is needed as default)
if ($("input[id$='TextBoxFirstName']").length) {
$("input[id$='TextBoxFirstName']").rules('add', {
required: true,
messages: {
required: 'First Name is required for individuals.'
}
});
}
// Add event for checking if first name validation is needed
$('select[id$=DropDownListPersonType]').change(function () {
if ($('select[id$=DropDownListPersonType] option:selected').text() == 'Individual') {
// Add validation rule
$("input[id$='TextBoxFirstName']").rules('add', {
required: true,
messages: {
email: 'First Name is required for individuals.'
}
});
}
else {
// remove rule
$("input[id$='TextBoxFirstName']").rules("remove");
}
});