2013-06-27 69 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; 
     } 

    }