0

我一直在搞乱这段代码,似乎无法正确处理,也没有找到任何关于使这项工作有效的信息。

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

4

2 回答 2

2

你只需要其中之一

  1. 复位按钮
  2. JavaScript 代码

重置文本

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

<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>

顺便说一句,您正在使用 jQuery 代码,但您没有在标签中提到 jQuery。

于 2013-08-21T05:36:03.503 回答
0

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

于 2013-08-21T14:40:25.067 回答