2012-06-28 171 views
2

我有一個簡單的窗體,其中textfield的模糊事件我向用戶顯示確認消息,它只是自動填充另一個隱藏的文本框。迄今爲止效果很好。當用戶直接單擊提交按鈕而不是單擊另一個字段或表單上的任何其他位置時,問題就會發生。這應該觸發模糊和提交事件,但由於某些原因模糊觸發,確認出現,並且一旦用戶點擊確認,提交事件不會被觸發。用戶被迫再次點擊提交以觸發提交事件。有任何想法嗎?模糊事件觸發器後提交事件不會觸發javascript確認

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

'alert'和'confirm'被阻止腳本的處理程序。爲什麼不保留「自動計算費用」複選框?只是說.. –

+0

我希望我可以,但我的客戶喜歡彈出確認....嘆了口氣 – Bluemagica

+0

然後你可以使用jQuery UI的確認對話框。併爲'Ok'和'Cancel'提供回調。 http://jqueryui.com/demos/dialog/modal-confirmation.html –

回答

0

這可能幫助:

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

我不能停止冒泡,因爲我需要確認...這是用戶點擊提交時,它需要做驗證,然後自動提交 – Bluemagica

0

考慮使用jQuery UI的自定義的確認對話框。

您可以將回調傳遞給OkCancel事件,以便您可以確保始終觸發submit()

實際上,您可以在以編程方式提交之前觸發其他驗證。

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

+0

嘿檢查我的問題在http://stackoverflow.com/questions/42707047/jquery-ajax-form-requires-2-clicks-to-submit – DragonFire

0

看來,這是因爲「提交」要求提交按鈕點擊事件。但是點擊並不實際發生,因爲當您執行mousedown時,然後確認彈出並因此提交按鈕上出現模糊事件,即沒有發生mouseup事件,因此沒有點擊。所以當確認關閉時,提交按鈕已經失去了焦點,也沒有發生提交。

您必須手動提交表單,用鼠標按下上事件

$("input:submit").mousedown(function(e){ 
    e.preventDefault(); 
    //$("#txt_fld1").blur(); 
    $('form').submit(); 
}); 
+0

我試過這個,它沒有工作,似乎像模糊觸發器 – Bluemagica

+0

嘗試刪除手動觸發的模糊 – user907860

+0

我甚至沒有提供觸發器 – Bluemagica