2013-10-22 22 views
2

Internet Explorer是在它再次。IE8沒有運行搜索字段輸入和跳閘javascript驗證

我試圖做我的搜索框中輸入一些簡單的驗證,但如果你按下回車鍵,而不是提交按鈕,它運行的JavaScript錯誤,「請輸入有效的搜索詞。」

這裏是我的論壇:

<div id="search_box"> 

<div style="float:left;"> 
    <form id="mini-search-form" name="searchform" action="/search/" method="get"> 
     <input type="hidden" name="searchaction" value="search" /> 
     <input type="hidden" name="profile" value="gameChangerAll" /> 
     <div id="search_input"> 
      <input type="text" name="query" id="query" placeholder="Search or Quote" size="10" onfocus="clearInput(this.id);" /> 
     </div> 


     <div id="search_button"> 
      <input type="submit" name="sitesearch" id="sitesearch" value="Go" /> 
     </div> 
    </form> 
</div> 

然後這裏是我的驗證:

<script type="text/javascript"> 

jQuery("#mini-search-form").submit(function() { 
    var match =/[a-zA-Z0-9]+/.exec(jQuery('#mini-search-form #query').val()); 
    if(!match){ 
    alert("Please enter valid search words."); 
    jQuery('#mini-search-form #query').focus(); 
    return false; 
    } 

    return true; 
}); 

+0

「跳閘JavaScript錯誤」 ...你得到一個錯誤?什麼錯誤?向我們顯示錯誤消息。在IE8中究竟發生了什麼? –

+0

我做了一個編輯以更好地闡明。它跳出警報(「請輸入有效的搜索詞。」) –

+0

你的意思是「it trips」javascript錯誤? – Nelson

回答

0

不知道爲什麼,但它的.focus()線是造成你的問題。如果您將其移動到setTimeout之內,它可以解決問題。

jQuery("#mini-search-form").submit(function() { 
    var match =/[a-zA-Z0-9]+/.exec(jQuery('#mini-search-form #query').val()); 
    if(!match){ 
     alert("Please enter valid search words."); 
     setTimeout(function(){ 
      jQuery('#mini-search-form #query').focus(); 
     }, 0); 
     return false; 
     } 
     return true; 
}); 
+0

一秒鐘,必須更新文檔並與服務器同步。一旦一切都在線,我會報告回來。 –

+0

@PixelReaper:它似乎爲我工作(我運行Windows XP的IE 8在VM):-) –

+1

嘿只是爲了得到這個服務器上後跟進,這並沒有解決問題。所以,我們只是放棄了對IE8的驗證。無論如何感謝您的幫助! –

0

我無法複製此問題,但我確實注意到您的匹配不接受空格。

$("#mini-search-form").submit(function() { 
var val = $('#query').val(); 
if(!val.match(/^[a-zA-Z0-9_\ ]+$/)){ 
    alert("Please enter valid search words."); 
    $('#mini-search-form #query').focus(); 
    return false; 
} 
return true; 
}); 

做出了小提琴:http://jsfiddle.net/filever10/SJXGm/