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

re-enable an input after it was disabled through javascript because it was empty

本文关键字:输入 启用 因为 新启用 javascript      更新时间:2023-09-26

我正在使用jQuery Validator来验证表单,我想禁用用户单击提交时为空的字段,这样服务器就不会从为空的输入中接收任何数据。为了禁用它们,我使用了以下Javascript:

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

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

禁用要提交的字段是没有意义的。相反,您应该首先进行仅限前端的验证,如果存在空字段(并且这些字段必须不为空),则阻止提交。

您可以设置一个变量(或函数)来运行验证,并且只有在返回true时才提交。这只是一个输入的浓缩示例。

var validate = ($('input').val() == '') ? false : true;
if(validate){ 
    // submit your form
} else {
   // throw your errors
}

然后最好在验证开始时清除错误。