4

選択リストが変更されたときに動的にロードされるいくつかのテキスト入力要素を持つフォームを作成しています。

問題は、フォームを送信すると、これらの要素がサーバーに送信されるデータに送信されないことです。

これらの動的に作成された要素を送信するフォームに「入れる」にはどうすればよいですか?

コードは次のようなものです。

$("#my_select_id").change(function() {
    $.ajax({
        type: "GET",
        url: "some-url/" + $("#played_number_game_id").children("option:selected").val(),
        async: false, 
        dataType: "html",
        error: function(XMLHttpRequest, status, errorThrown) {
            alert("oh no!");
            alert(status);
        },
        success: function (data, status) {
            $("#parent-element").html("");
            $("#parent-element").append(data);
        },
        complete: function() {
        }
    });

    $("#my_form_submit").click(function() {
        $("#my-form").ajaxSubmit({ clearForm: true }); 
        return false;
    });
});

ajax 呼び出しによって返される html は次のとおりです。

<input id="my-form_e_1" class="number-input" type="text"/>
<input id="my-form_e_2" class="number-input" type="text"/>

そして、ajaxメソッドを呼び出した後にfirebugを使用してページを確認すると、動的にロードされたhtmlは階層内にあるべき場所にあります...つまり、フォーム内にあります。

しかし、送信ボタンをクリックすると、ajax 呼び出しの前に存在していたフォームの要素のみが投稿されます。

何か案は?

4

2 に答える 2

5

nameあなたの問題は、動的に追加された入力要素に属性がないことです。name送信されたデータに値を含める場合は、入力要素に属性が必要です。

于 2009-12-14T01:48:46.157 に答える
0

フォーム要素を body タグに追加し、そのスタイルを「display:none」に設定するだけです。

于 2013-08-27T06:38:42.007 に答える