Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC4中jQuery的id和name属性是否不同?_Jquery_Asp.net_Asp.net Mvc - Fatal编程技术网

MVC4中jQuery的id和name属性是否不同?

MVC4中jQuery的id和name属性是否不同?,jquery,asp.net,asp.net-mvc,Jquery,Asp.net,Asp.net Mvc,我创建了一个MVC4项目。我有一个文本和一个按钮。如果文本为空,我希望在每次单击按钮时使用jQuery显示警报 视图: $(函数(){ $(“#发送”)。在(“单击”上,函数(e){ var m=$(“#txt1”).val(); 如果(m==“”){ 警报(m); e、 预防默认值(); } }); }); @使用(Html.BeginForm()) { 发送 } 但不是工作。如果我像下面这样更改文本,它就起作用了 @Html.TextBox("txt1") or <input ty

我创建了一个MVC4项目。我有一个文本和一个按钮。如果文本为空,我希望在每次单击按钮时使用jQuery显示警报

视图:


$(函数(){
$(“#发送”)。在(“单击”上,函数(e){
var m=$(“#txt1”).val();
如果(m==“”){
警报(m);
e、 预防默认值();
}
});
});
@使用(Html.BeginForm())
{
发送
}
但不是工作。如果我像下面这样更改文本,它就起作用了

@Html.TextBox("txt1")
or
<input type="text" id="txt1" />
@Html.TextBox(“txt1”)
或
为什么在“@Html.TextBox(“txt1”)”中使用名称,而在“”中使用id

您应该使用:

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

如果您想通过
输入名称
验证
您的
表单
,请使用
[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();
           }
     });
});
在jQuery中,
#
用于通过
id
选择元素,这就是第二个代码工作的原因

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

var m = $("#txt1").val();
您没有在输入类型中指定“id”属性,而只是指定了如下名称:

 <input type="text" name="txt1" />
那么它将如何检测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”和其他属性的DOM元素,

可能有一个原因
form
submit
时需要其
元素的
name
,并且
id
必须是
唯一的。您还可以在
Textbox()中传递
其他属性
请参见
$("#txt1").val()
$("#send").on("click", function (e) {
           var m = $("input[name='txt1']").val();
           if (m == "") {
               alert(m);
               e.preventDefault();
           }
     });
@Html.TextBox("txt1")