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

时间:2013-05-07 14:18:52

标签: javascript jquery asp.net-mvc-4

我有一个看起来像这样的文本框

<%= 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”,我想显示提醒。

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

5 个答案:

答案 0 :(得分:1)

试试这个 -

$('.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();
        });

答案 1 :(得分:1)

你可以这样做:

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

答案 2 :(得分:1)

而不是:

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

尝试

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

答案 3 :(得分:1)

您可以使用正则表达式来测试字符串中是否出现“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();
    }
});

您还应该在“else”语句中添加“submit”函数,以便表单仅在验证成功时提交。

注意:如果用户碰巧住在“街头街道”,这可能会导致不必要的问题。

答案 4 :(得分:1)

使用

$("#textboxid").blur(function(){
if( $("#textboxid").val() == "box"){
alert("box typed!");
}
});
这将使你的生活变得轻松!