使用Javascript或JQuery清除Html.TextBoxFor的文本
我似乎不知道如何清除razor文本框中的文本 我试过这个:使用Javascript或JQuery清除Html.TextBoxFor的文本,javascript,jquery,asp.net-mvc-3,razor,Javascript,Jquery,Asp.net Mvc 3,Razor,我似乎不知道如何清除razor文本框中的文本 我试过这个: @Html.TextBoxFor(m => m.Field) $(document).ready(function () { $(".link").click(function () { $("#Field").value = ""; return false; }); }); 没用 使用j
@Html.TextBoxFor(m => m.Field)
$(document).ready(function () {
$(".link").click(function () {
$("#Field").value = "";
return false;
});
});
没用 使用jQuery设置值的正确方法是使用
val
并传递一个值。因此,要清除它,请使用以下命令:
$("#Field").val("")
查看jQuery API中的val
:
如果您想使用基本Javascript,可以使用.value=”“
,但由于您要使用jQuery选择元素,因此必须使用jQuery方法,如val
不过你有几个选择。对于基本Javascript,这同样非常简单:
document.getElementById("Field").value = "";
如果仍然希望使用jQuery,但使用value
,则需要获取DOM元素,如:
$("#Field")[0].value = "";
// or
$("#Field").get(0).value = "";
如果您使用的是jQuery,那么最好还是坚持使用val()
。这样做的好处是,如果找不到元素,调用.val(“”
)不会轰炸程序。如果您使用我提到的任何其他方法,如果元素不存在,它们将爆炸。所以你真正想要什么取决于你。在使用get(0)
或[0]
之前,您可以随时检查$(“#字段”).length
是否大于0,但这有点过分了
另一个可能的问题是元素的
id
可能不是“字段”。我忘记了MVC是如何生成实际的HTML的,但这取决于您如何使用Firebug或开发人员工具来调查并查看id
实际上是什么。然后,您可能必须将其替换为“Field”。但是,如果您真的想使用普通JavaScript设置值:$(“#Field”).get(0.value=”“代码>--但这有点傻。@andytuba不确定那个评论是在我的编辑之前还是之后出现的,但我确实包含了那个评论。但我绝对同意。真的没有必要那样做。它要么是纯香草的,要么就是在编辑之前加入的所有jquery。当我看到“此答案已被编辑”的通知并弹出相同的代码时,我很高兴。