MVC 4在提交之前休息文本字段

时间:2013-08-21 03:55:20

标签: javascript jquery asp.net-mvc-4 razor reset

我一直在搞乱这段代码似乎无法做到正确,并且没有找到任何有关这项工作的好信息。

我需要清除搜索文本框并重置视图。我想javascript清除文本框并提交表单将是完成这项工作的方法,但似乎无法使其工作。我的入门代码如下

按钮代码:

@using (Html.BeginForm())
{
    <div>
        @Html.TextBox("SearchString")
        <input type="submit" value="Search" />
        <input type="submit" id = "Reset" value ="Reset"/>
    </div>
}

JAVASCRIPT:

<script>
    $("#Reset").click(function (event) {
        $("#Reset").val("");
    });
</script>

我会假设我需要在调用重置文本框后在javascript中执行herf。我是在正确的轨道上还是有一种更简单的方法来完成这项工作。

2 个答案:

答案 0 :(得分:1)

您只需要其中一个

  1. 重置按钮
  2. JavaScript代码
  3. 重置文字

    对于重置按钮,请尝试以下

    <input type="reset" id = "Reset" value ="Reset"/>
    

    请注意type=reset未提交

    对于JavaScript,您需要将Id分配给文本框并使用它来清空文本。 将文本框代码更改为

    @Html.TextBox("SearchString",null, new {@id = "txtSearch"})
    

    和JavaScript到

    <script>
        $("#Reset").click(function (event) {
            $("#txtSearch").val("");
        });
    </script>
    
    BTW,你正在使用jQuery代码,但你没有在Tag中提到过jQuery。

答案 1 :(得分:0)

好的,在UmairP和this post的推动下,这是最终的解决方案:

表单提交按钮

@using (Html.BeginForm())
{
    <div>
        @Html.TextBox("SearchString")
        <input type="submit" id = "Search" value ="Search" />
        <input type="submit" name = "Reset" value ="Reset"/>
    </div>
}

控制器代码:

var restButton = Request.Params.AllKeys.FirstOrDefault(key => key.StartsWith("Reset"));
if (!String.IsNullOrEmpty(restButton))
{
    SearchString = "";
}

然后我可以像使用ModelState.Clear()一样正常运行我的其余代码来清除回发上的表单字段。