0

jqueryモーダルダイアログでフォーム送信を使用しようとしています。次のコードを見てください。

$(function() {

var sendConfirmation = false;

$( "#dialog-form" ).dialog({
  autoOpen: false,
  height: 300,
  width: 350,
  modal: true,
  buttons: {
    "Send": function() {
        sendConfirmation = true;
    },
    "Close": function() {
        $(this).dialog("close");
    }
  }
});

$("#send").submit(function(event) {
    //If user click on modal dialog "Send", then submit should be trigger.
    //And if user click "Close"
    $(this).trigger("recaptcha");
    return false;
    /*if(sendConfirmation) {
        return true;
    } else {
        return false;
    }*/

});

$("#send").bind("recaptcha", function() {
        $( "#dialog-form" ).dialog( "open" );
        //return false;
    }); 
  });

ユーザーが送信ボタンをクリックすると、ダイアログが開き、モーダルダイアログの[OK]ボタンをクリックするまで送信を待機してから、送信を実行する必要があります。
主なアイデアは、ユーザーが送信ボタンをクリックするとモーダルダイアログが開き、モーダルダイアログにreCAPTCHAが表示されるというものです。ユーザーがrecaptchaコードを入力し、[OK]ボタンをクリックすると、データが送信されます。

4

1 に答える 1

1

JavaScriptはシングルスレッドであり、JavaScriptはダイアログの表示とクリックの処理に使用されているため、UIをブロックせずに実行をブロックする方法はありません。ダイアログボタンのコールバック関数を使用してみてください

于 2014-06-03T11:14:13.070 に答える