1

画像クリック時に確認ダイアログを表示する必要があります。画像の「onclick」セクションのコードは、jquery確認ダイアログがtrueを返した場合にのみ実行する必要があります。

この時点で、ユーザーが$( "。submit_image")をクリックすると、ダイアログが表示されますが、フォームは引き続き送信されます。

ロジックは、jquery.alertsプラグインまたは通常のjavascript確認ダイアログの両方で同じである必要があります。

<form name="myform">
<img class="submit_image" onclick="myform.field1.value='1';myform.field1.value='2'; myform.submit();">
</form>


$(document).ready(function(){
   // catch submit 
   $(".submit_image").click(function(e){
       jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
      return r;
       });
   });
});
4

3 に答える 3

3
return jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
  return r;
});

多分?jQueryでは、デフォルトのアクションを停止するために.click関数から「false」を返す必要があります。現在、その関数からは何も返されていません。

* 編集 *

jConfirmを見たところ、それがどのように機能するか(具体的には何も返さないため、コールバックを介してのみ値を返すことができるため)、希望どおりに使用することは不可能です。代わりに行う必要があるのは、onclickハンドラーから常にfalseを返し、jConfirmコールバックで手動でフォーム送信を呼び出すことです。

例:

$(document).ready(function(){
  // catch submit 
  $(".submit_image").click(function(e){
    jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
      // If they confirmed, manually trigger a form submission
      if (r) $(".submit_image").parents("FORM").submit();
    });
    // Always return false here since we don't know what jConfirm is going to do
    return false;
  });
});
于 2009-09-11T16:18:43.383 に答える
1

イベントを分割する必要があります。1 つは画像の onclick でフォームの onsubmit を呼び出し、次にフォームの onsubmit を呼び出します。これは、フォームの送信を停止するために「false」を返すのに適した場所です。

于 2009-09-11T16:30:51.883 に答える