帮助防止默认

我在表单向导上点击(“#step0Next”)后弹出一个确认对话框。 目前,在下一步按下按钮后弹出。 当你按下THAT步骤(步骤1)上的按钮而不是进入第2步时,我需要它弹出。如何在用户单击对话框中的“OK”之前停止按钮的默认操作?

$("#step0Next").live('click', function(event) { event.preventDefault(); if($("#RT").is(":checked") && !$(".ex").is(':checked')) { return confirm ('foo'); //alert("You have not selected any exchanges for which to receive real time market data from. If you continue, you will only receive real time data for market metrics and ten minute delayed data for everything else. Do you wish to continue?"); $(this).die('click'); } }); 

confirm()没有默认操作。 在检查返回值之后,您需要阻止默认值,而不是返回它。 (我不是完全关注你的问题,但我假设你想在用户点击OK之后继续……不是“停止默认操作”?)

从现在的位置删除event.preventDefault()并执行以下操作:

 if( ... long if statement ... ) { if( confirm("Are you sure? Yadda Yadda") ) { // User clicked OK } else { // User clicked Cancel event.preventDefault(); } } 

当然,如果您确实想要阻止所点击的任何内容的默认操作,即使用户单击了OK,也请将preventDefault调用保留在原来的位置。 我提供的代码仍会告诉您他们在确认对话框中单击了哪个按钮。

这没用。 这样做: