Javascript 表单在使用无效输入提交后是否未提交?

Javascript 表单在使用无效输入提交后是否未提交?,javascript,validation,Javascript,Validation,我有一个javascript函数,如下所示: function validateInput() { var search_text = document.getElementById('search_text').value; var size = document.getElementById('size').value; var submitButton = document.getElementById('sb_search');

我有一个javascript函数,如下所示:

   function validateInput() {
        var search_text = document.getElementById('search_text').value;
        var size = document.getElementById('size').value;
        var submitButton = document.getElementById('sb_search');
        document.getElementById('sb_search').disabled=false;
        var filter = /^[\x20-\x7E]*$/;

        if (filter.test(search_text) && search_text.length>0){
                   return true;
        }

        else{
             submitButton.setAttribute('disabled');

             } 

         }

一旦我在没有值的情况下按了submit按钮,并且没有满足正则表达式的要求,按钮就不会提交了

这是因为search_text.length==0,因此您会陷入else并禁用提交按钮

当输入为零或不符合正则表达式时,您将禁用提交按钮

你也没有返回真的,这是持有它从提交

在else条件下输入一个返回值false。 而不是document.getElementById'sb_search'。disabled=false;尝试 document.getElementById'sb_search'.removeAttribute'disabled'
将return放在else语句中为false

    function validateInput() {
    var search_text = document.getElementById('search_text').value;
    var size = document.getElementById('size').value;
    var submitButton = document.getElementById('sb_search');
    document.getElementById('sb_search').disabled=false;
    var filter = /^[\x20-\x7E]*$/;

    if (filter.test(search_text) && search_text.length>0){
               return true;
    }

    else{
         submitButton.setAttribute('disabled');
         return false;
         } 

     }

这就是我需要的。它从第一次提交表单开始停止。但在那之后,即使我输入了值,表单也不会提交。你应该使用@Rhea的答案。你的问题不清楚。当正则表达式不满足且输入为空时,应该禁用submit按钮。这是你的密码!是的,现在当满足正则表达式且输入不为空时,表单甚至不会提交。在if中添加一个警报,并检查它是否进入。按照我下面的答案执行=document.getElementById'sb_search'。removeAttribute'disabled'不加注释的下推表决是站不住脚的!