0

私のjQueryスクリプトは次のようになります(フォームはアップロードするファイルを送信しています):

      $("#addMore").click(function() {
                $("#progForm").submit();
                $("#upTar").css("display","block");
                $("#title").val("");$("#obj").val("");$("#theory").val("");     $("#code").val("");$("#output").val("");$("#conc").val("");
            });

$("#upTar") から始まるコードの実行を、フォームの送信が完了するまで (つまり、ファイルがアップロードされ、PHP スクリプトが応答するまで) 遅らせたいと考えています。

編集

#upTar は iframe であり、フォーム送信のターゲットです。#upTar は、フォーム アクション スクリプトからコンテンツが生成された後にのみ表示されるようにしたいと考えています。

ありがとう!

解決後のコード

 $("#addMore").click(function() {
    $("#progForm").submit();
    $('#upTar').load(function() {
        $("#upTar").css("display","block");
        $("#title, #obj, #theory, #code, #output,     #conc").val("");
       });
 });
4

3 に答える 3

2

ブラウザで JavaScript を「待機」させる方法はありません。この場合、できることがいくつかあります。

  1. ターゲットの「ロード」イベントハンドラーにCSSの変更などを入れることができます<iframe>

    $('#upTar').load(function() {
            $("#upTar").css("display","block");
            $("#title, #obj, #theory, #code, #output, #conc").val("");
    }
    
  2. それ自体から実行されるフォーム POST への応答にコードを入れることができ<iframe>ます。

    $(function() {
      (function($) {
            $("#upTar").css("display","block");
            $("#title, #obj, #theory, #code, #output, #conc").val("");
      })(window.parent.$);
    });
    
于 2011-03-28T14:26:50.937 に答える
0

現在行っているのは、HTMLフォームを送信し、フォームの「action」属性にリストしたページをロードすることです。ブラウザが新しいページに移動するため、javascript関数の下部が実際に実行されることはありません。必要なものは次のとおりです。ajaxを介して送信し、フォームをクリアするフォームは次のとおりです。

$("#addMore").click(function() {
    var formData = $("#progForm").serialize();
    var url = $("#progForm").attr("action");
    $.get(url, formData, function(){
        $("#upTar").css("display","block");
        $("#title").val("");
        $("#obj").val("");
        $("#theory").val("");
        $("#code").val("");
        $("#output").val("");
        $("#conc").val("");
    });
});

そのようなものを探していましたか?

于 2011-03-28T14:29:07.643 に答える
0

iframe 内に jQuery をロードすると、次の関数を使用して、このセレクターで親要素を制御できます。

$("#myparentid", top.document); 

本質的には、top.document セレクターで必要な関数を実行できる時点で更新を待機する関数を iFrame 内で実行できます。

于 2011-04-26T18:28:05.223 に答える