1

PDFのダウンロードリンクでは、jQueryダイアログを開き、名前、電子メール、および確認チェックボックスを取得するフォームが必要です。

フィールドにはいくつかの検証があります。必要な最小サイズと最大サイズなど...

ページの読み込み時にダイアログを初期化し、PDF ダウンロード リンクでダイアログを開きます。

$("#dialog").dialog({
    bgiframe: true,
    autoOpen: false,
    modal: true,
    buttons: {
        'Continue': function(){
            var valid = true;
            valid = valid && checkExists(name, 2, 50);
            //valid = valid && checkEmail(email);
            valid = valid && checkTrue(agree);

            if(valid) {
                //ajax call to controller
                return true;
            }
        },
        'Cancel': function(){
            $(this).dialog('close');
        }
    }   

});

$("a.download-document").click(function(){
    $("#dialog").dialog('open');
});

私が抱えている問題は、クリックイベントでfalseを返さないため、ダイアログが開きますが、クリックイベントを続行することです。

フォームが送信され、検証がOKの場合にのみクリックイベントを続行するにはどうすればよいですか?

4

2 に答える 2

1

if (有効な) ステートメントに else 句を追加するだけです。それは読むべきです:

if (valid) {
   // ajax call to controller
   return true;
}
else return false;

クリックが抜けません。

于 2010-10-14T21:06:33.170 に答える
0

簡単な方法の 1 つは、リンク クリック ハンドラから常に false を返し、ダイアログのコールバック ハンドラから window.open を使用して PDF をダウンロードすることです。

于 2009-11-23T12:36:27.257 に答える