簡體   English   中英

在jQuery中動態創建的表單未提交

[英]Forms created dynamically in jquery does not submit

我正在頁面中動態創建許多表格。 這是我在jQuery中的表單創建例程

$( document ).ready(function() {
    var quest;
$.ajax({
        url: "myteacher.php",
        dataType: "json",

        success: function(response){
                        console.log(response);
                        quest = response;
                        var forms = [];
                        for(i=0; i<quest.length; i++)
                        {
                            $("#unanswered").append("<p>"+quest[i].qtext+"</p>");
                            forms[i] = $('<form method = "POST">').attr('id', function(){
                                return 'AnswerBox'+quest[i].questionid;
                            }).appendTo($("#unanswered"));
                            $('<textarea rows="5" class="AnswerBoxArea" name="answer">').appendTo(forms[i]);

                            $('<input type="button" value="Answer" class="AnsSubmit">').attr('id', function(){
                                return 'AnsTextQ'+quest[i].questionid;
                            }).appendTo(forms[i]);

                        }

        },
        error : function(jqXHR, textStatus, errorThrown) {
                    alert(jqXHR.status+",  " + jqXHR.statusText+",  "+textStatus+",  "+errorThrown);
        }
    });

});

表單創建完美。 但是單擊按鈕不會啟動任何事件。 我正在使用以下例程進行測試:

$( document ).ready(function() {
$(":button").on("click", function(){
$("input[id^='AnsTextQ']").each(function() {
        var x = $(this).attr('type');
        alert(x);
    });
});

});

有人可以告訴我怎么了嗎?

編輯:問題在於,當元素":button"尚不存在時, .on("click"事件的函數將在內存中啟動,因此它們就像undefined選擇器一樣,需要適應代碼的邏輯當元素存在運行例是使用功能.on()去jQuery的jQuery的。對()函數API為這個選擇它已經存在於你的項目DOM

此項工作在添加到DOM中的按鈕中。
試試這個,告訴我。

$(document).on("click", ":button", function(){
$("input[id^='AnsTextQ']").each(function() {
  var x = $(this).attr('type');
  alert(x);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM