我有一个我一直在构建的ASP.NET MVC应用程序,我正在尝试验证单个字段。所以,我决定将jQuery.validate引入我的应用程序,所以如果我将来需要做更多的验证,我会包含插件。
进行一些测试,我补充道:
jQuery("#NextFollowUpDateTimePicker").rules("add", {
minlength: 2
});
我的输入ID是“NextFollowUpDateTimePicker”,我甚至还没有尝试验证,但我只是想添加规则。当我用Firebug检查控制台时,我收到以下错误:
a is null
这是从我的jQuery文件(1.5.1)抛出的。有没有人碰到过这个?我有各种其他JS文件,所以我猜它是某种冲突,但我不确定如何调试它。
提前致谢! -Matt
答案 0 :(得分:2)
确保在添加任何规则之前已调用$("#myForm").validate();
。此外,如果要添加动态输入以进行验证,请确保在添加规则之前将它们添加到DOM中。
答案 1 :(得分:0)
不确定下面的代码是否会帮助某人,因为当我单击提交按钮以验证字段并执行AJAX调用时调用了JQuery验证器时,我确实遇到了不合适的行为。在我添加以下语句之前,验证无法按预期方式进行多次提交。看起来DOM提交时需要重置DOM,以避免任何浏览器刷新以使验证按预期进行。
$.data($(id)[0], 'validator', null);
JSP 文件,显示输入类型“提交”
<input type="submit" id="label.login.button" name="label.login.button"
value="" class="btn btn-primary btn-xs btn-block">
JavaScript 执行验证并处理表单提交
/**
*
* @author dinesh.lomte
*/
/**
*
*/
$(document).ready(function() {
reset('#loginForm');
// Validating the login form on submit
validateLoginForm();
});
/**
*
* @param id
* @returns
*/
function reset(id) {
$.data($(id)[0], 'validator', null);
}
/**
*
* @returns {undefined}
*/
function validateLoginForm() {
// Validating the login form
$('#loginForm').validate({
rules: {
userId: {
required: true,
userId: true
},
password: 'required'
},
messages: {
userId: {
required: function() {
// Message: Please enter User ID.
return $.i18n('business.message.00001');
},
userId: function() {
// Message: Invalid character(s) found. Please enter valid characters.
return $.i18n('business.message.00003');
}
},
password: {
required: function() {
// Message: Please enter Password.
return $.i18n('business.message.00002');
}
}
},
submitHandler: function(form) {
// Processing the login request
processLoginRequest();
}
});
return false;
}
/**
*
* @returns
*/
function processLoginRequest() {
// Building the json instance to process login request
var formData = {'userId':$('#userId').val(),
'password':$('#password').val(),
'language':$('#language').val()
};
$.ajax({
type :'POST',
contentType :'application/json',
url :getContextPath() + '/login',
data :JSON.stringify(formData),
dataType :'json',
beforeSend :function() {
$('#pleaseWaitModal').modal();
},
complete :function() {
$('#pleaseWaitModal').modal('hide');
},
success :function(data) {
// Validating ui message(s) for display
if(hasUiMessages(JSON.stringify(data))) {
return;
}
createHomeControllerForm(data);
toggleComponents(true);
},
error :function(exception) {
// Message: Failed to process your request due to system
// error. Please contact your system administrator.
showI18nMessage('error', 'business.message.00005');
toggleComponents(false);
}
});
}