基于javascript事件提交表单

基于javascript事件提交表单,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我想要的是,当用户按下tab或enter等键(即,这会使他失去焦点)时,能够提交表单。在文本字段外单击也会触发提交。但是,当他点击“取消”按钮时,应该会阻止提交 html结构如下所示 <form id="form"> <input id="text" onblur="$(this).closest('form').submit();"> <a id"submit">submit</a> <a id"cancel">cance

我想要的是,当用户按下tab或enter等键(即,这会使他失去焦点)时,能够提交表单。在文本字段外单击也会触发提交。但是,当他点击“取消”按钮时,应该会阻止提交

html结构如下所示

<form id="form">
  <input id="text" onblur="$(this).closest('form').submit();">
  <a id"submit">submit</a>
  <a id"cancel">cancel</a>
</form>

提交
取消
当前发生的情况是,当用户按enter键时,表单将提交两次,并且只应提交一次。当他按下“取消”按钮时,表格会立即提交并取消


有没有人知道我如何编写一些javascript代码来实现这种行为(的想法是采用jira在线编辑模式,我正试图以类似的方式构造一些东西)

保留提交标志以防止表单提交时出现重复。差不多


提交
取消
var submitFlag={};
函数提交表单(id){
如果(!submitFlag[id]){
submitFlag[id]=真;
$('#'+id).submit();
}否则{
//无所事事
//警报(“表格已提交”);
返回;
} 
}

我将为您提供另一个解决方案,您可以使用jQuery,它是
.change()
。这样,当用户单击input元素时,它将触发.change()事件,您可以在它的回调函数中提交表单。如果用户取消,则您可以正常处理该事件,与单击提交按钮相同

表格:

<form id="form">
  <input id="text">
  <a id="cancel">cancel</a>
  <a id="submit">submit</a>
</form>

.

我必须使用提交/取消事件的链接。当他们根据选择触发页面上的ajax刷新时(即,即使用户选择取消,也会发生一些事情,所以我所要做的就是阻止已经在进行的表单提交),可能比板条箱功能更有效,它将在setInterval中提交表单。您可以保存计时器描述符以停止提交并继续按您的需要处理它?很抱歉,我看到您需要链接,更新了我的小提琴。
<form id="form">
  <input id="text">
  <a id="cancel">cancel</a>
  <a id="submit">submit</a>
</form>
$(document).ready(function(){
    $('#submit').click(function(e){
        e.preventDefault();
        //submit the form
        console.log('form submitted by button click')
    });
    $('#cancel').click(function(e) {
        e.preventDefault();
        //close form?
        console.log('cancelled form');
    });

    $('#text').change(function(){
        //submit the form
        console.log('form submitted, maybe hide form now?');
    });
});