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

bro*_*man 0 javascript jquery razor asp.net-mvc-3

我似乎无法弄清楚如何清除剃刀文本框中的文本.

我试过这个:

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


    $(document).ready(function () {
        $(".link").click(function () {                
            $("#Field").value = "";
            return false;
        });    
    });
Run Code Online (Sandbox Code Playgroud)

没工作.

Ian*_*Ian 7

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

$("#Field").val("")
Run Code Online (Sandbox Code Playgroud)

查看jQuery API val:

http://api.jquery.com/val/

如果你想使用基本的Javascript,你可以使用.value = "",但是由于你选择了一个带有jQuery的元素,你必须使用jQuery方法,比如val.

你有几个选择.使用基本Javascript同样非常简单:

document.getElementById("Field").value = "";
Run Code Online (Sandbox Code Playgroud)

如果您仍然想使用jQuery但是使用value,则需要获取DOM元素,例如:

$("#Field")[0].value = "";
// or
$("#Field").get(0).value = "";
Run Code Online (Sandbox Code Playgroud)

如果你正在使用jQuery,你可能会坚持下去val().这样做的好处是,.val("")如果找不到元素,调用将不会轰炸程序.如果你使用我提到的任何其他方法,如果元素不存在,它们将会爆炸.所以这取决于你真正想要的东西.您可以随时检查,看看是否$("#Field").length是大于0使用前get(0)[0],但是这是一种矫枉过正.

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