表单没有操作,输入不重新加载页面

时间:2009-11-30 07:04:45

标签: javascript html forms

我正在寻找创建没有提交按钮的HTML表单的最佳方法。这本身很容易,但我还需要在完成类似提交的事情时停止表单重新加载(例如,在文本字段中点击 Enter )。

7 个答案:

答案 0 :(得分:168)

您需要在表单中加入action="javascript:void(0);",以防止重新加载页面并维护HTML标准。

答案 1 :(得分:40)

向表单添加一个onsubmit处理程序(通过普通的js或jquery $()。submit(fn)),并返回false,除非你的具体条件得到满足。

除非您不希望表单提交,否则 - 在这种情况下,为什么不在表单元素上省略'action'属性?

答案 2 :(得分:9)

只需将此事件添加到文本字段即可。它会阻止按Enter键提交,您可以根据需要随意添加提交按钮或调用form.submit():

onKeyPress="if (event.which == 13) return false;"

例如:

<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>

答案 3 :(得分:5)

当您在表单中按Enter键时,表单的自然行为将被提交,为了阻止这种不自然的行为,您必须使用jquery阻止它提交(默认行为):

$("#yourFormId").on("submit",function(event){event.preventDefault()})

答案 4 :(得分:2)

一个想法:

<form method="POST" action="javascript:void(0);" onSubmit="CheckPassword()">
    <input id="pwset" type="text" size="20" name='pwuser'><br><br>
    <button type="button" onclick="CheckPassword()">Next</button>
</form>

<script type="text/javascript">
    $("#pwset").focus();
    function CheckPassword()
    {
        inputtxt = $("#pwset").val();
        //and now your code
        $("#div1").load("next.php #div2");
        return false;
    }
</script>

答案 5 :(得分:0)

解决的两种方法:

  1. 表单的操作值为“javascript:void(0);”。
  2. 为表单添加keypress事件侦听器以阻止提交。

答案 6 :(得分:0)

第一个响应是最佳解决方案:

  

向表单添加一个onsubmit处理程序(通过普通的js或jquery   $()。submit(fn)),并返回false,除非您的具体条件是   满足。

更具体的jquery:

$('#your-form-id').submit(function(){return false;});
  

除非您不希望表单提交,否则 - 在这种情况下,为什么   不仅仅是忽略了行动&#39;表单元素的属性?

编写Chrome扩展程序是您可能拥有用户输入表单的示例,但您不希望其提交。如果您使用action =&#34; javascript:void(0);&#34;,代码可能会有效,但最终会出现this problem,您会收到有关运行内联Javascript的错误。

如果您完全忽略该操作,则表单将重新加载,在某些情况下编写Chrome扩展程序时也会出现这种情况。或者如果你有一个带有某种嵌入式计算器的网页,用户可以提供一些输入并点击&#34;计算&#34;或类似的东西。