现在我遇到了一个问题。我对文本框进行了一些验证,我想要一种效果,只有当用户输入正确的信息时,该按钮才能执行onclick事件。如果用户输入不正确,该按钮不应该执行onclick事件(不提交,只使用js和按钮)。
<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;
}
}
在 search()中,我使用ajax绘制数据表。现在无论输入什么,都会得到文本框的数据,如果数据不正确,就会出错。
答案 0 :(得分:0)
你可以试试这个
var showHintResult;
$('#eventsPostcodeTextbox').keyup(function (){
showHintResult = showHint($(this).val())
});
$('#eventsButton').on('click', function(e){
if (!showHintResult) {
e.preventDefault();
}
search();
});
e.preventDefault()
会阻止按钮的默认行为&#34; 点击&#34;。