5

2番目の(動的に生成された)divの値を使用して、フォームの一部の入力フィールドの値を更新する必要があります。

これがコードです

$("#second_update_form_data :input").each(function(index) {

//find all input fields in the second div
                var FieldName = $(this).attr("name");
                var FieldValue = $(this).val();

  //try to get the corresponding field from the original form to change it
                var Selector = "#TT_CartForm__form input[name=" + FieldName + "]";
                var OriginalFiled = $(Selector);

これは機能しませんが、理由はわかりません。元の入力フィールドにIDを追加し、それを使用してそれらを選択することもできますが、何が問題なのかを理解し、正しいセレクターを使用したいと思います。

よろしくお願いします

編集:申し訳ありませんが、どの部分が機能しないかを指定しなかったことに気づきました。Selectorを使って選択しようとすると最後の行なので、間違っているように見えるのはこの最後の行です

4

4 に答える 4

4

あなたの更新に基づいて更新されました

var OriginalFiled = $('#TT_CartForm__form input[name="' + FieldName + '"]');

文字列が確実に読み取れるように、引用符を変更してみてください。IE7 と IE8 が属性セレクターをサポートするのは、!DOCTYPE が指定されている場合のみです。そしてIE6では、それらはまったく機能しません

また、要素 ID 名を再確認してください。アンダースコアが 2 つの領域にあり、1 つの領域に 2 つのアンダースコアがあることがわかります。入力を保持する div の id 値がまったく同じであることを確認してください

于 2012-11-06T17:44:36.580 に答える
2

少し高速なセレクター:

$('#second_update_form_data').find('input').each(function(index) {

    //find all input fields in the second div
    var fieldName     = $(this).attr('name'),
        fieldValue    = $(this).val(),

    //try to get the corresponding field from the original form to change it
        selector      = 'TT_CartForm__form input[name=' + fieldName + ']',
        originalFiled = $(selector);
于 2012-11-06T17:51:20.480 に答える
0

変化する:

$("#second_update_form_data :input")

$("#second_update_form_data input")
于 2012-11-06T17:44:10.877 に答える
0

あなたの問題は、動的に生成された div です。.on() を使用する必要があります

jQuery.on()

于 2012-11-06T17:51:07.960 に答える