Js文本框的值决定了按钮onclick事件在asp.net中发生

本文关键字:asp net 事件 onclick 文本 按钮 决定了 Js | 更新日期: 2023-09-27 18:13:22

现在我遇到了一个问题。我对一个文本框做了一些验证,我想要一种效果,只有当用户输入正确的信息时,按钮才能执行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绘制数据表。现在无论输入什么,它都会得到文本框的数据,如果数据不正确,它会给出错误。

Js文本框的值决定了按钮onclick事件在asp.net中发生

你可以试试这个

var showHintResult;
$('#eventsPostcodeTextbox').keyup(function (){
    showHintResult = showHint($(this).val())
});
$('#eventsButton').on('click', function(e){
    if (!showHintResult) {
        e.preventDefault();
    }
    search();
});

e.preventDefault()防止按钮"click"的默认行为。