2015-09-19 23 views
0

現在我遇到了一個問題。我爲文本框做了一些驗證,我想要一個效果,只有當用戶輸入正確的信息時,按鈕才能執行onclick事件。如果用戶沒有輸入正確的,該按鈕不應該做onclick事件(不提交,只使用js和按鈕)。js文本框的值決定了按鈕onclick事件發生在asp.net

<input type="text" id="eventsPostcodeTextbox" runat="server" onkeyup="showHint(this.value)" /> 
<input type="button" id="eventsButton" runat="server" value="FIND" onclick="search()" /> 

function showHint(str) { 
    reg = /^(0[289][0-9]{2})|([1345689][0-9]{3})|(2[0-8][0-9]{2})|(290[0-9])|(291[0-4])|(7[0-4][0-9]{2})|(7[8-9][0-9]{2})$/; 
    if (str.length == 0) { 
     document.getElementById("txtHint").innerHTML = ""; 
     return false; 
    } else if (str.length == 4 && reg.test(str)) { 
     document.getElementById("txtHint").innerHTML = ""; 
     return; 
    } else { 
     document.getElementById("txtHint").innerHTML = "Your input is not correct."; 
     return false; 
    } 
} 

搜索(),我使用Ajax來繪製一個數據表。現在不管輸入什麼東西,它都會得到文本框的數據,如果數據不正確,會給出錯誤。

+0

你可以在jsfiddle上覆制相同的,http://jsfiddle.net – dreamweiver

+0

http://jsfiddle.net/umjss8jn/2/ –

+0

嗨,我試過jsfiddle,但不工作.... –

回答

0

你可以試試這個

var showHintResult; 
$('#eventsPostcodeTextbox').keyup(function(){ 
    showHintResult = showHint($(this).val()) 
}); 

$('#eventsButton').on('click', function(e){ 
    if (!showHintResult) { 
     e.preventDefault(); 
    } 
    search(); 
}); 

e.preventDefault()防止對鍵 「點擊」 的默認行爲。

+0

嗨,我試過你的解決方案無論輸入什麼,該按鈕都無法調用search()函數。我試圖console.log(showHintResult);但沒有任何數據。 –

+0

@GuodongRong你把它添加到'#eventsButton'點擊事件...檢查更新的答案 – Ahmed

+0

嗨,我已經解決了它。感謝您的回覆。 –

相關問題