2012-02-08 7 views
0

私はページ上にフォームを持っており、2つの送信ボタンにクリックアクションをトラップしています。トラップされていない送信ボタンがもう1つあります(このボタンのモーダルを表示する必要はありません)。フォーム提出前にjqueryモーダルダイアログ

私の明白な問題は、モーダルが最初に開くときに送信アクションをブロックする必要があることです。ユーザーが実際にモーダルの[OK]ボタンをクリックしたときに強制的に送信する必要があります。ただし、各ボタンにはバックエンドスクリプトが知っておく必要がある特定の名前と値があるため、$( '#myform')。submit()メソッドは機能しません。

function something(msg) { 
    var $dialog = $('<div></div>').html(msg).dialog({ 
     autoOpen: false, 
     title: 'Please confirm...', 
     modal: true, 
     buttons: { 
      "OK": function() { 
       $dialog.dialog('close'); 
       //submit needs to happen here 
      }, 
      Cancel: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
    $dialog.dialog('open'); 
    event.preventDefault(); 
    return false; 
} 

答えて

1

私は送信ボタンの名前と値を取るために隠しフィールドが含まれますがクリック:各ボタンが特定されている場合

<input type="hidden" name="subName" value="" /> 

 

$("#submit_button_one").function() { 
    $("input[name='subName']").attr("name", $(this).attr("name")).val(($(this).val()); 
    something("message"); 
    return false; 
}); 
$("#submit_button_two").function() { 
    $("input[name='subName']").attr("name", $(this).attr("name")).val(($(this).val()); 
    something("message"); 
    return false; 
}); 

function something(msg, act) { 
    // ... 
    //submit needs to happen here 
    $('#myform').submit() 
} 
+0

この作品は提出しますアクション? – JonoB

+0

アクションは何ですか? –

+0

フォームのアクション属性を 'document.myform.action =" page1.html ";で変更できます; –

関連する問題