Jquery 验证整个表单问题

本文关键字:表单 问题 验证 Jquery | 更新日期: 2023-09-27 17:56:44

我正在尝试验证表单中的几个文本框,然后再在代码中执行其他功能,所以我得到了:

var validForm; // **If i set it there to true it will always be true**
            $('#Form :input').each(function () {
                var id = this.id;
                var value = this.value;
                var isMatch = id.substring(0, 4) == "txt_";
                if (isMatch == true) {
                    if (($.trim(value) == 0 ) {
                        alert("invalid " + id);
                        valid = false;
                    } // **if I include a else here it will not be valid as it is foreach loop**
                }
            });
            if (validForm == true) {
                $.ajax({
                    type: "POST",
                    url: "Form.aspx/Print",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        if (msg.d == 'Success') {
                        }
                    }
                });
            }

如果我在foreach循环中执行else语句validForm变量设置为true,则无法正常工作,因为最后一个文本框有效且其余无效,那么它将我的变量设置为true(请参阅代码注释)。

另一方面,如果我在开头validForm分配一个 true,那么它将永远是 true(请参阅代码注释)。

关于如何克服这个问题的任何想法?

Jquery 验证整个表单问题

在第 10 行,您使用了一个错误的变量:

valid = false;

它应该是这样的:

validForm = false;