MVC4中jQuery的id和name属性是否不同?
我创建了一个MVC4项目。我有一个文本和一个按钮。如果文本为空,我希望在每次单击按钮时使用jQuery显示警报 视图: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
$(函数(){
$(“#发送”)。在(“单击”上,函数(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")