MVC 4提交前休息文本字段

MVC 4 Resting Textfield before submit

本文关键字:文本 字段 提交 MVC      更新时间:2023-09-26

我一直在处理这段代码,但似乎无法正确处理,也没有找到任何关于实现这一功能的好信息。

我需要清除一个搜索文本框并重置视图。我认为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来重置文本框。我是走在正确的轨道上,还是有更简单的方法来完成这件事。

您只需要这些中的一个

  1. 重置按钮
  2. JavaScript代码

重置文本

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

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

注意type=reset未提交

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

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

和JavaScript到

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

顺便说一句,你正在使用jQuery代码,但你还没有在Tag中提到jQuery。

好的,通过UmairP和这篇文章的推动,这里是最终的解决方案:

表单提交按钮

@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()正常运行其余代码,以在回发时清除表单字段。