gpt4 book ai didi

jquery - 对象不支持属性或方法 'valid'

转载 作者:行者123 更新时间:2023-12-01 04:39:55 26 4
gpt4 key购买 nike

我的代码抛出以下错误:

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({
submitHandler: function () {
onFormIsValid($(this));
}
});

form.bind('invalid-form.validate', function() {
onFormIsInvalid($(this));
});

最佳答案

您的代码:

form.submit(function () {
if ($(this).valid())
onFormIsValid($(this));
else
onFormIsInvalid($(this));
});

这似乎是一种非常迂回的方式,并且是错误的方法。该插件会自动捕获点击并阻止提交,因此您的自定义 submit() 处理程序可能会发生冲突。

您可以使用内置的 submitHandlerinvalidHandler 回调函数...那么您就不需要担心如何调用 .valid( ),因为 submitHandler 仅在有效时触发,而 invalidHandler 仅在无效时触发。

演示1:http://jsfiddle.net/9obe1b35/1/

如果您使用 ASP 中内置的 Unobtrusive Validation 帮助程序插件,则 .validate() 方法会自动构造,您无法将这些回调函数放入其中。相反,您可以将自定义 submitHandlerinvalidHandler 函数放入 the jQuery.validator.setDefaults() method 中。 .

演示 2(不引人注目):http://jsfiddle.net/9obe1b35/2/

关于jquery - 对象不支持属性或方法 'valid',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40899211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com