当Ajax.BeginForm()可能忽略提交输入时按?

时间:2014-02-01 18:02:24

标签: c# asp.net asp.net-mvc-3

问题很简单:

当Ajax.BeginForm()在输入时忽略表单提交按?

解决方案:

在没有<input type="submit">(直通)输入键的情况下提交表单可能,如果符合以下情况:

<input type="text">类型中只有一个 html元素(textarea不起作用)。

如果出现输入键,则表单可能不会提交

<input type="text">类型的格式中有多个html元素,没有<input type="submit">

2 个答案:

答案 0 :(得分:2)

它为我的问题提供了解决方案: -

问题: - 在我的视图MVC应用程序窗体中,我只有单个文本框,单个textArea,其他html输入字段和一个type = button按钮。当我按下文本框中的输入键时,它会触发回发,这对我来说是个问题。

解决方案: - 从上面的基督教解决方案中,我发现当mvc中有一个与html.Beginform标签一起使用的文本框时,回车键按下事件会触发提交按钮事件。可能这不是我应该在这里发布的答案,但我很高兴从这篇文章找到解决方案,这就是我在这里发布答案的原因。

答案 1 :(得分:1)

首先确保表单中有一个提交按钮。 如果您不希望在表单上有任何提交按钮(虽然它有点奇怪,但确定),您可以添加一个提交按钮并将其隐藏如下:

<div class="hidden-submit"><input type="submit" tabindex="-1"/></div>

然后在CSS文件中:

.hidden-submit {
    border: 0 none;
    height: 0;
    width: 0;
    padding: 0;
    margin: 0;
    overflow: hidden;
}

另一种解决方案是在Javascript中添加以下内容:

$(window).keypress(function (event) { 
    if (event.which == 13) { 
       document.forms[0].submit(); 
       // assuming that you have just one form on the whole page
    } 
});