我似乎无法弄清楚如何从剃须刀文本框中清除文本。
我试过这个:
@Html.TextBoxFor(m => m.Field)
$(document).ready(function () {
$(".link").click(function () {
$("#Field").value = "";
return false;
});
});
没用。
答案 0 :(得分:7)
使用jQuery设置值的正确方法是使用val
并传递一个值。所以要清除它,请使用:
$("#Field").val("")
查看val
的jQuery API:
如果你想使用基本的Javascript,你使用.value = ""
,但由于你选择了一个带有jQuery的元素,你必须使用jQuery方法,比如val
。
你有几个选择。使用基本的Javascript同样非常容易:
document.getElementById("Field").value = "";
如果您仍想使用jQuery但使用value
,则需要获取DOM元素,如:
$("#Field")[0].value = "";
// or
$("#Field").get(0).value = "";
如果您使用的是jQuery,那么您最好坚持使用val()
。这样做的好处是,如果找不到元素,调用.val("")
将不会轰炸程序。如果你使用我提到的任何其他方法,如果元素不存在,它们将会爆炸。所以这取决于你真正想要的东西。在使用$("#Field").length
或get(0)
之前,您可以随时查看[0]
是否大于0,但这有点矫枉过正。
另一个可能的问题是元素的id
可能不是“字段”。我忘记了MVC为生成实际HTML所做的工作,但是你可以使用像Firebug或Developer Tools这样的东西来调查并查看id
实际上是什么。然后,您可能必须将其替换为“Field”。