我正在处理一个有多种形式的网页。一些基本的HTML表单和一些AJAX表单。我有一个创建的输入验证,让我举个例子......如果输入有一个class =“required”,只要按下提交按钮,如果任何必需的类为空,那么表单就不会提交。哪个方法很有效......直到您有多个表单,其中包含不适用于您提交的部分的必填字段。
我能够找到最接近的形式$(this).closest(“form”)并且它正确地获取了表单元素,然后我需要能够仅通过该表单的子元素循环。我已经尝试过:.children(':input'),. find('input')并诚实地向许多人列出。
以下是选择按钮时的代码
$('#formSubmit').click(function (e) {
var submit = true;
var form = $(this).closest("form");
var formID = $(form).attr("id");
e.preventDefault();
$(form).children(":input").each(function () {
if ($('#ERROR').length > 0) {
submit = false;
alert("Please fix errors to continue");
}
$('.required').each(function () {
if ($(this).val() == "" || $(this).val() == undefined) {
submit = false;
$(this).css({ 'background-color': '#fef236' });
}
});
});
if (submit == true) {
this.form.submit();
}
}); //End of #formSubmit
同样有趣的是我已经开始创建带有GUID的ID的表单,因此它们将是唯一的并且允许我在没有任何问题的情况下定位事物,只是想把它扔出去,如果它可以帮助导致解决方案
我感谢任何帮助=)
答案 0 :(得分:1)
$(this).closest("form").find(":input")
是查找所有输入的正确方法。我认为问题在于$('.required')
。该调用再次从全局级别开始搜索,从而查找页面上所有表单的输入。
我认为首先不需要.find(":input")
。只需使用form.find(".required")
获取必填字段并循环显示这些字段。