模糊事件触发javascript确认后提交事件未触发

时间:2012-06-28 06:58:13

标签: javascript jquery

我有一个简单的表单,在textfield的blur事件中,我向用户显示一条确认消息,它只是自动填充另一个隐藏的文本字段。到目前为止哪个有效。当用户直接单击提交按钮而不是单击另一个字段或表单上的任何其他位置时,会发生此问题。这应该触发模糊和提交事件,但由于某种原因模糊触发,确认会出现,一旦用户点击确认,就不会触发提交事件。用户被迫再次单击“提交”以触发提交事件。有什么想法吗?

$(function(){
   $("#txt_fld1").blur(function(){
      if(confirm("Auto calculate charge?"))
      {
         $("#txt_chrg").val("8.25");
      }
   });
   $("form").submit(function(){
      alert("SUBMITTING");
   });
})

3 个答案:

答案 0 :(得分:0)

这可能会有所帮助:

$("button[type=submit]").click(function(e) {
e.preventDeafault();
#("#txt_fld1").blur();
$("form").submit();
});

答案 1 :(得分:0)

考虑使用jQuery UI的自定义确认对话框。

您可以将回调传递给OkCancel个事件,以确保始终触发submit()

实际上,您可以在以编程方式提交之前触发其他验证。

http://jqueryui.com/demos/dialog/#modal-confirmation

答案 2 :(得分:0)

这似乎是因为"提交"需要在提交按钮上单击事件。但是实际上并没有发生点击,导致当你执行mousedown时,然后确认弹出并因此在提交按钮上出现模糊事件,即没有发生mouseup-event,因此没有点击。因此,当确认关闭时,提交按钮已经失去了焦点并且没有提交。

您必须使用mousedown-event

上的处理程序手动提交表单
$("input:submit").mousedown(function(e){
    e.preventDefault();
    //$("#txt_fld1").blur();
    $('form').submit();
});