0

美しい jQuery Mobile ダイアログを使用したいと思います。

<a href="foo.html" data-rel="dialog">Open dialog</a>

本当にフォームを送信したいかどうかユーザーに尋ねること。

私の考えは、ユーザーがフォームに入力して送信をクリックすると、「本当にフォームを送信しますか? はい/いいえ」のようなダイアログが表示され、「はい」の場合、フォームは ajax を使用して私の insert.php ページに送信されます。ダイアログは単に閉じられます。

公式ドキュメントを読みましたが、これは単なるグラフィカルな微調整で、jqm Web アプリの任意のページをダイアログのように表示するだけのようです。

このダイアログ ページをフォーム送信の確認/キャンセルとして使用するにはどうすればよいですか?

より明確にするために:次のような標準のjavascriptを使用したくありません:

function insertClienti()
{
$('#form').submit(function(e) {
    if(!confirm('really submit the form?')) {
        e.preventDefault();
        return;
    }
        $.post("insert.php", $("#form").serialize());
});
}

ただし、jQuery Mobile のダイアログのみです。

お時間をいただきありがとうございます。

4

1 に答える 1

1

私は単純に間違った jQuery Mobile コンポーネントを使用していました。

ポップアップ ダイアログはこのために単純に作成されており、非常に使いやすいです。

ドキュメントは次のとおりです。

http://jquerymobile.com/demos/1.2.0-alpha.1/docs/pages/popup/

アプリで使用したコードは次のとおりです(ベーススタンスバリデーターを使用しています):

$(document).bind('pageinit', function () {
                validaFormInserimento();
                });

function insertClienti()
        {
$.post("insert.php", $("#form_inserimento_clienti").serialize());
        }

function validaFormInserimento()
{
$("#form_inserimento_clienti").validate({
        rules: {
                nick: "required"
        },
        messages: {
                nick: "Campo obbligatorio"
        },
        errorPlacement: function(error, element){
                if (element.attr("name") === "nick") {
                        error.insertAfter($(element).parent());
                } else {
                        error.insertAfter(element);
                }
        },
        submitHandler: function(form){
                $( "#popupDialog" ).popup( "open" );
        }
});
}

function disabilitaSubmit()
{
$('input,select').keypress(function(event) { return event.keyCode != 13; });
}

function insertClienti()
        {
$.post("insert.php", $("#form_inserimento_clienti").serialize());
$( "#popupDialog" ).popup( "close" );
$("#form_inserimento_clienti").each(function() {
       this.reset();
     });
        }
于 2013-04-30T09:41:53.557 に答える