使用Javascript或JQuery清除Html.TextBoxFor的文本

时间:2012-10-11 20:43:16

标签: javascript jquery asp.net-mvc-3 razor

我似乎无法弄清楚如何从剃须刀文本框中清除文本。

我试过这个:

@Html.TextBoxFor(m => m.Field)


    $(document).ready(function () {
        $(".link").click(function () {                
            $("#Field").value = "";
            return false;
        });    
    });

没用。

1 个答案:

答案 0 :(得分:7)

使用jQuery设置值的正确方法是使用val并传递一个值。所以要清除它,请使用:

$("#Field").val("")

查看val的jQuery API:

http://api.jquery.com/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("")将不会轰炸程序。如果你使用我提到的任何其他方法,如果元素不存在,它们将会爆炸。所以这取决于你真正想要的东西。在使用$("#Field").lengthget(0)之前,您可以随时查看[0]是否大于0,但这有点矫枉过正。

另一个可能的问题是元素的id可能不是“字段”。我忘记了MVC为生成实际HTML所做的工作,但是你可以使用像Firebug或Developer Tools这样的东西来调查并查看id实际上是什么。然后,您可能必须将其替换为“Field”。