MVC 4中jQuery的id和name属性有什么不同?

时间:2014-01-14 07:16:09

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

我创建了一个MVC 4项目。我有一个文字和一个按钮。我希望无论何时单击按钮,如果文本为空,请显示jQuery警告。

查看:

<script>
$(function () {
        $("#send").on("click", function (e) {
                var m = $("#txt1").val();
                if (m == "") {
                    alert(m);
                    e.preventDefault();
                }
         });
    });
</script>
@using(Html.BeginForm())
{
    <input type="text" name="txt1" />
    <button type="submit" id="send">send</button>
}

但不行。如果我改变文字,就像下面的工作一样!

@Html.TextBox("txt1")
or
<input type="text" id="txt1" />

为什么在“ @ Html.TextBox(”txt1“)”中使用名称并在“&lt; input type =”text“id =”txt1 “/&gt; ”使用 ID

4 个答案:

答案 0 :(得分:1)

您应该使用:

$("#send").on("click", function (e) {
            var m = $("input[name='txt1']").val();
            if (m == "") {
                alert(m);
                e.preventDefault();
            }
     });

答案 1 :(得分:1)

如果您希望validate form input name [name="txt1"],请使用#txt1而不是var m = $("input[name='txt1']").val();

$(function () {
     $("#send").on("click", function (e) {
           var m = $("input[name='txt1']").val();
           if (m == "") {
               alert(m);
               e.preventDefault();
           }
     });
});

完整代码

{{1}}

答案 2 :(得分:0)

在jQuery中#用于按id选择元素,这就是您的第二个代码有效的原因。

<input type="text" id="txt1" />

var m = $("#txt1").val();

html的呈现@Html.TextBox("txt1")将为: -

<input id="txt1" name="txt1" type="text" value="">

答案 3 :(得分:0)

您没有将“id”属性赋予您的输入类型,而不是您刚刚给出的名称,如

 <input type="text" name="txt1" />

你已经编写了jquery代码,

$("#txt1").val()

然后如何检测id =“txt1”的DOM元素?

为此你必须使用代码,

$("#send").on("click", function (e) {
           var m = $("input[name='txt1']").val();
           if (m == "") {
               alert(m);
               e.preventDefault();
           }
     });

当您将Razor语法用作

时,为您指定
@Html.TextBox("txt1")

然后它将创建一个具有“name”,“id”和&amp;的DOM元素。其他属性,