Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有操作且enter不重新加载页面的表单_Javascript_Html_Forms - Fatal编程技术网

Javascript 没有操作且enter不重新加载页面的表单

Javascript 没有操作且enter不重新加载页面的表单,javascript,html,forms,Javascript,Html,Forms,我正在寻找最简洁的方法来创建一个没有提交按钮的HTML表单。这本身很简单,但我还需要阻止表单在完成类似提交的操作时重新加载自身(例如,在文本字段中点击Enter)。向表单添加onsubmit处理程序(通过纯js或jquery$().submit(fn)),并返回false,除非满足特定条件 除非您不希望表单提交,否则,在这种情况下,为什么不在表单元素中省略“action”属性?只需将此事件添加到文本字段中即可。它将阻止按Enter键进行提交,您可以根据需要自由添加提交按钮或调用表单。提交():

我正在寻找最简洁的方法来创建一个没有提交按钮的HTML表单。这本身很简单,但我还需要阻止表单在完成类似提交的操作时重新加载自身(例如,在文本字段中点击Enter)。

向表单添加onsubmit处理程序(通过纯js或jquery$().submit(fn)),并返回false,除非满足特定条件


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

只需将此事件添加到文本字段中即可。它将阻止按Enter键进行提交,您可以根据需要自由添加提交按钮或调用表单。提交():

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

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

您希望在表单中包含
action=“javascript:void(0);”
,以防止页面重新加载并保持HTML标准。

一个想法:

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



下一个


$(“#pwset”).focus();
函数CheckPassword()
{
inputxt=$(“#pwset”).val();
//现在是你的代码
$(“#div1”).load(“next.php#div2”);
返回false;
}
两种解决方法:

  • 表单的操作值是“javascript:void(0);”
  • 为表单添加按键事件侦听器以防止提交

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


    将onsubmit处理程序添加到表单中(通过普通js或jquery) $().submit(fn)),并返回false,除非您的特定条件是 相遇

    更具体地说,jquery:

    $('#your-form-id').submit(function(){return false;});
    
    $("#yourFormId").on("submit",function(event){event.preventDefault()})
    
    除非你不想提交表单,否则永远——在这种情况下,为什么 不只是在表单元素上省略“action”属性

    编写Chrome扩展就是这样一个例子:您可能有一个表单供用户输入,但您不希望它提交。如果使用action=“javascript:void(0);”,代码可能会正常工作,但最终会出现运行内联javascript的错误


    如果您完全忽略了操作,表单将重新加载,这在某些情况下在编写Chrome扩展时也是不希望的。或者,如果你有一个带有某种嵌入式计算器的网页,用户会提供一些输入,然后单击“计算”或类似的东西。

    当你在表单中按enter键时,表单的自然行为是被提交,要停止这种不自然的行为,你必须阻止它提交(默认行为),使用jquery:

    $('#your-form-id').submit(function(){return false;});
    
    $("#yourFormId").on("submit",function(event){event.preventDefault()})
    

    你希望它永远不提交吗?如果你只有一个文本字段,当你点击回车键时它不应该提交,是吗?我希望它在其他条件下提交(事实上点击某个按钮)。问题是,我无法让“在文本字段中输入时”的发布/访问相同url的行为不会发生。因此,我精心创建的表单,需要执行X、Y和Z操作才能提交,可能会被用户按enter键错误提交。谢谢。我担心你的答案的清晰向我表明了先前答案的正确性,因此你没有得到公认的答案,但你确实得到了我的感谢和投票!非常感谢。很乐意帮忙。我从来都不是一个引人注目的人根据标准,没有
    action
    属性的表单不是表单,并且在某些浏览器中会导致页面重新加载。。我发现
    action=“javascript:void(0);”
    效果很好。Dutchie的答案很好。Firefox刚刚刷新了页面。@Dutchie432应该把它变成一个答案而不是评论。然后它会到达它所属的顶端。或者,KPrime可以调整他的答案,因为省略该操作对我不起作用……只花了2天时间试图在按下enter键时抑制submit按钮的默认操作,因为尽管该操作发生了,页面最终还是重新加载(Firefox)。在表单上添加javascript void作为操作修复了它。谢谢你的回答。这仍然有效-但这仍然是2016年的“最先进”解决方案吗?@low_rents我仍然一直在使用它,而且我个人还没有找到更好的解决方案。感谢您提供了一个精确而伟大的解决方案来解决在按enter键时重新加载页面的问题:)最佳解决方案。感谢您真正回答了这个问题,不告诉开发人员他们应该做什么。听按键事件(例如回车键)会给您带来
    textarea
    s的麻烦,可能会选择自动完成或下拉菜单,而手机可能是另一个麻烦源。