2013-06-27 31 views
0

我有一个这样的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'); 

      } 

     } 

当我按下提交按钮没有价值,没有满足该按钮后,未提交的正则表达式。

+1

你的问题为v不清楚。当正则表达式不满意,输入为空时,提交按钮**应该被禁用。那是你的代码! – 2013-06-27 05:43:23

+0

是的,现在当满足正则表达式后,输入不为空时,表单甚至不会被提交。 – pynovice

+0

在'if'中加入一个警告,并检查它是否进入。 – 2013-06-27 05:51:13

回答

-1

这是因为search_text.length == 0这样的话你陷入else和禁用提交按钮

+0

downvoting without commenting is lame! – alfasin

0

要禁用当输入为零或不按正则表达式的提交按钮!

你也没有回归真正的持有它从submition!

+0

这就是我需要的。它停止从表单提交的第一次。但在此之后,即使我输入了该值,表单也未提交。 – pynovice

+0

你应该去@Rhea的答案 – Ali

0
  • return false置于else条件中。
  • 代替document.getElementById('sb_search').disabled=false;尝试 document.getElementById('sb_search').removeAttribute('disabled')
0

放在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; 
     } 

    }