4

簡単な質問は、ボタン<div>を含むtype=submitボタンを入力すると、.click(function(){...}関数が失敗することです。

私がやっていることはこれです、を含むことによって移入された#formDialogButtonオープン。クライアントが[送信]をクリックすると、phpがデータベース処理を実行し、の1つを返す場所で起動することになっています。 #accordion.ajax()#userForminput type=submit.ajax()#userform

            $(".formDialogButton").click(function(){
            var userDialog = "#" + this.id + "Dialog";
            $("#userForm, #siteForm, #limitForm").html("<img src='ajax-loader.gif' />");
            $("#userForm, #siteForm, #limitForm").load("ajax.php", {op: "forms"}, function(responseTxt,statusTxt,xhr){
                $("#userForm").html($("#user").html());
                $("#siteForm").html($("#site").html());
                $("#limitForm").html($("#limit").html());
                if(statusTxt=="success") {
                    $(userDialog).dialog({
                        autoOpen: false,
                        draggable: true,
                        modal: true,
                        resizable: true,
                        width: 700,
                        position: { within: "#mainContent" }
                    });
                    $(userDialog).dialog("open");
                    $( "#accordion").accordion({ 
                        collapsible: true,
                        heightStyle: "content",
                    });
                };
                if(statusTxt =="error")
                    alert("Error: "+xhr.status+": "+xhr.statusText);
            });
        });  

これは機能しており、フォームにを返します<input class="submitAndReturn" type="submit" value="Submit" />。しかし、私はそれを「見つける」ことはできません。

            $(".submitAndReturn").click(function() {
        alert ('this is where I call my regular .formSubmitButton and let  success: function() do a .formDialogButton ');
        });  

私は完全独学の素人ですので、ご容赦ください。ありがとう

4

3 に答える 3

3

要素がページに読み込まれる前にクリックイベントを追加しようとしているようです。変化する

$(".submitAndReturn").on("click", function() {
    alert ('as .submit and return is dynamically loaded. so, use on function');
}); 

$(document).on("click", ".submitAndReturn", function(e) {
    e.preventDefault(); //cancel the click action if needed
    alert ('as .submit and return is dynamically loaded. so, use on function');
}); 
于 2012-12-20T14:19:05.643 に答える
0
    $(".submitAndReturn").on("click", function() {
    alert ('as .submit and return is dynamically loaded. so, use on function');
    });  
于 2012-12-20T13:50:27.133 に答える
0

私がやっていることはこれです、#formDialogBu​​ttonは入力type =submitで#userFormを含む.ajax()によって移入された#accordionを開きます

私が理解していれば、正しい.formDialogButtonDOM要素が.ajax()コールバックイベントに読み込まれています。

上記の問題のJavaScriptをヘッダーまたはページの最後に読み込んでいる場合は、$(".formDialogButton").click(function()イベントがDOMにアタッチされていない可能性があります。

これは、AJAXがイベントをアタッチする必要のある必要なDOMをフェッチする前に、スクリプトがすでに起動されているために発生します。.ajax()成功コールバックでイベントを添付する必要があります。何かのようなもの

$.ajax({
  url: 'YOUR_URL_TO_FETCH_FORM',
  success: function(data) {
    // associate click
    $(".formDialogButton").click(function() // rest of the code
  }
});
于 2012-12-20T14:31:04.257 に答える