我想检测用户是否在文本框中输入了某个字符串

I want to detect if a user types a certain string into a textbox

本文关键字:输入 字符串 文本 检测 用户 是否      更新时间:2023-09-26

我有一个像这样的文本框

<%= Html.TextBoxFor(model => model.ContactAddress, new { autocomplete = "off", maxlength = "75" })%>

在我的javascript中有这个

   $('.save_button_cont').click(function (e) {

        var addr1 = $('#ContactAddress').val();
        if(addr1.indexOf("box") > -1) {
            alert("HEY NO P.O. BOXES ALLOWED ");
        }
            document.forms[0].submit();
        });

我希望这将弹出警报张贴之前,如果用户在文本框中有"框"。但这行不通。

我想显示一个警告,如果用户在他们的地址(文本框)中输入字符串'box'。

编辑:在提交时,我将使用一个确认框来验证用户是否想继续。谢谢你的帮助

使用

$("#textboxid").blur(function(){
if( $("#textboxid").val() == "box"){
alert("box typed!");
}
});

这将使您的生活轻松!

试试这个-

$('.save_button_cont').click(function (e) {
      var addr1 = $('#ContactAddress').val();
            if(addr1.indexOf("box") > -1) {
                alert("blah");
            }else {
                alert('Bleh');
            }
            alert("TEST");
            $('form').eq(0).submit();
        });

你可以这样做:

$('.save_button_cont').click(function (e) {
    var addr1 = $('#ContactAddress').val();
    if (addr1.indexOf("box") > -1) alert("blah");
    else alert('Bleh');
    $('#formID').submit();
});

而不是:

if(~addr1.indexOf("box")) {...} else {...}

if(addr1 === "box") {...} else {...}

您可以使用regex来测试字符串中是否出现"box"。这将允许您执行不区分大小写的搜索:

$('input[type="submit"]').click(function(e) {
    e.preventDefault();
    var input = $('#test').val();
    if (/box/i.test(input)) {
        alert("bad");
    } else {
        alert("good");
        $("form").submit();
    }
});

你还应该把"submit"函数放在"else"语句中,这样表单只在验证成功时提交。

注意:如果用户碰巧住在"box street"上,这可能会导致不必要的问题。