在通过javascript禁用输入后重新启用该输入,因为该输入为空

在通过javascript禁用输入后重新启用该输入,因为该输入为空,javascript,forms,validation,Javascript,Forms,Validation,我使用jqueryvalidator来验证表单,我想禁用用户单击submit时为空的字段,以便服务器不会从保留为空的输入中接收任何数据。为了禁用它们,我使用了以下Javascript: $(function() { $("#form1").submit(function() { $(this).find(":input").filter(function(){ return !this.value; }).attr("disabled", "disabled"); re

我使用jqueryvalidator来验证表单,我想禁用用户单击submit时为空的字段,以便服务器不会从保留为空的输入中接收任何数据。为了禁用它们,我使用了以下Javascript:

$(function() {
    $("#form1").submit(function() {
       $(this).find(":input").filter(function(){ return !this.value; }).attr("disabled", "disabled");
  return true; // ensure form still submits
    });
});

这是我的问题:假设表单在第一次提交时就经过了验证,那么这段代码工作得很好。但是,如果用户点击submit但未进行验证,则会禁用各种必填字段和此类弹出窗口的所有警报,但会禁用所有输入。我怎样才能解决这个问题?我需要知道如果表单未经验证且未正确提交,如何重新启用它们。

禁用要提交的字段没有意义。相反,您应该首先执行仅前端验证,以防止在存在空字段(并且这些字段必须不为空)时提交

您可以设置一个变量(或函数)来运行验证,并且只有当它返回true时才提交。这是一个仅包含一个输入的简明示例

var validate = ($('input').val() == '') ? false : true;

if(validate){ 
    // submit your form
} else {
   // throw your errors
}
那么,在验证开始时清除错误就好了