我的代码抛出了以下错误:对象不支持属性或方法“有效”
Object doesn't support property or method 'valid'.
这是因为目前的形式没有验证。那没问题。我只想提前检查我是否可以将方法valid
应用到当前表单以避免恼人的JavaScript错误。
这就是我想要的。例如。 if(form.isValidatable()) form.valid()
代码没有问题。我需要的只是知道调用方法或属性是否会抛出异常。
form.submit(function() {
if ($(this).valid())
onFormIsValid($(this));
else
onFormIsInvalid($(this));
});
更新:我是新来的jquery和谢谢你的帮助!!!!!我想要做的是在提交之前和验证之后禁用所有输入。我没有设法让submitHandler被调用,真的很难理解为什么。这就是为什么我正在做这个解决方案。看我的代码。我该如何改进?
我想它适用于所有形式的我的解决方案....
$(document).ready(function() {
var form = $("form");
form.bind('invalid-form.validate', function() {
onFormIsInvalid($(this));
});
form.submit(function() {
if ($(this).valid())
onFormIsValid($(this));
else
onFormIsInvalid($(this));
});
});
function onFormIsValid(form) {
$("input", form).prop("readonly", "readonly");
$("input[type=submit]", form).prop("disabled", true);
$("input[type=submit]", form).each(function() {
$(this).data("val", $(this).val());
});
$("input[type=submit]", form).val("Processing...");
}
function onFormIsInvalid(form) {
$("input", form).prop("readonly", null);
$("input[type=submit]", form).prop("disabled", false);
$("input[type=submit]", form).each(function() {
$(this).val($(this).data("val"));
});
}
如果在另一方面,我做了以下的提交处理程序不会被调用的。没有错误,没有线索,什么都没有。我放置一个断点,就像处理程序不在那里。
form.validate({
\t \t submitHandler: function() {
\t \t \t onFormIsValid($(this));
\t \t }
\t });
form.bind('invalid-form.validate', function() {
onFormIsInvalid($(this));
});
'如果($验证!){回报; }'? –
@StephenMuecke,'if(!$。validator)'只会告诉你插件已经加载了,对吗?我认为OP想知道一个特定的表单是否已经被'.validate()'验证过。 – Sparky
@Sparky,这就是''':)的原因:) - 不知道我理解OP要什么 –