1

jQuery UI タブ内にあるフォームを送信したいのですが、アクション ページをタブ内でレンダリングしたいのですが、タブ内の「a」タグを「インターセプト」して、それらのリンクをタブ内に呼び出すことができました (ここでの助けに感謝します...)

これを使って

$('#tabs-community').on('click', '.ui-tabs-panel a', function(){
    var $panel=$(this).closest('.ui-tabs-panel');
    $panel.load(this.href);
    return false;
});

submit イベントにも似たようなものがあると思います...私はこれを試しました

$('#formID').on('submit', function(e){
    e.preventDefault();
    var formSrc = $(this).attr('action');
    var formMethod = $(this).attr('method');
    var formData = $(this).serialize();
    $.ajax({
      url: formSrc,
      type: formMethod,
      data: formData,
      success: function(data){
        //work with returned data from requested file
        alert(data);
      }
    });
  });

( jqueryタブでフォーム送信から取得-しかし、これは私が求めているものではありません)

そして、それは本来の目的で「機能」しますが、AJAX呼び出しを行い、アラートでアクションページを返します...私が望むものではありません。

言うまでもなく、jQueryが送信ボタン変数を削除しているように見えます...たとえば、1つまたは別の送信ボタンの存在を確認します-送信ボタンがクリックされたかどうかをHTML仕様で確認します-ITは値として渡されますが、私のfirebugコンソールには、ajaxフォームの送信が表示されます-ボタン変数の「POST」にはNO SIGNが表示されます(これは副次的な問題であり、フォームをタブに「通常」送信することができれば解決すると思います)。 。 助言がありますか?

それが理にかなっていることを願っています。

4

2 に答える 2

0

明らかなアイデアは、結果を<iframe>. 次のようにフォームを送信できます。

var $form = $('form#foobar');
//replace form by iframe
$form.hide();
$form.parent().append('<iframe id="submit-target" name="submit-target"></iframe>');
//submit form to new iframe (set target to name attribute of iframe)
$form.attr('target', 'submit-target');
$form.submit();

へのフォームの送信については、別の質問への回答iframeで詳しく説明されています。

于 2012-06-19T07:46:18.327 に答える