我正在寻找创建没有提交按钮的HTML表单的最佳方法。这本身很容易,但我还需要在完成类似提交的事情时停止表单重新加载(例如,在文本字段中点击 Enter )。
答案 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)
解决的两种方法:
答案 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;或类似的东西。