とにかく私がやりたいことは:
私は次のhtmlを持っています:
<table>
<tr id="cats">
<td><select class="cats" id="cat_name"><option value="1">cat1</option>
<option value="2">cat2</option>
</select></td>
<td><div id="unit"></div></td>
<td><div id="vat"></div></td>
<td><div id="price"></div></td>
<td><input class="add-btn" id="Add" type="button" value="Add" /></td>
</tr>
</table>
クリックするadd
と、クローンが作成#cats
され、テーブルに追加されます(*すべてのオブジェクト(tr、select、div)は同じIDを保持します!*)
私はこのコードを使用して、正常に機能していることを実行します
$('table').delegate(".add-btn", "click", function() {
if(i2l < max) {
$(this).parent().parent().after($(this).parent().parent().clone());
// some other statments
// don't care
}
});
しかし、最も重要なのは、そのカタログの、、、を変更するときは、ajax /cat_name value
jqueryを使用して設定する必要があるということです。unit
vat
price
これがjqueryコードです
var prev_cat_id = ""
$('table').delegate(".cats", "change", function() {
var cat_id = $(this).val()
if(jQuery(this).val()){
$.ajax({
url: "../ajax/catalogue.json?catalogues="+jQuery(this).val(),
datatype: "json",
success: function(data){
$('#unit'+prev_cat_id).attr('id','unit' + cat_id);
$('#price'+prev_cat_id).attr('id','price' + cat_id);
$('#vat'+prev_cat_id).attr('id','vat' + cat_id);
$('#unit' + cat_id).text(data['unit']);
$('#vat' + cat_id).text(data['vat']);
$('#price' + cat_id).text(data['price']);
prev_cat_id = cat_id;
}
});
} else {
$('#unit'+prev_cat_id).attr('id','unit');
$('#price'+prev_cat_id).attr('id','price');
$('#vat'+prev_cat_id).attr('id','vat');
$('#unit').text('');
$('#vat').text('');
$('#price').text('');
prev_cat_id = ""
}
});
});
ただし、変更は最初の行にのみ影響します
例えば :
データベース内の情報
cat1[unit] = "dollar"
cat1[vat] = "7%"
cat1[price] = "80"
cat2[unit] = "euro"
cat2[vat] = "19%"
cat2[price] = "50"
私がブラウザで見るもの:
(1)設定cat_name = cat1
[ cat1 [v]] euro 7% 80 [add]
*(2)新しい行を追加cat_name = cat2
し、2番目の行に設定した後"行1のみが影響を受けます*
[ cat1 [v]] euro 19% 50 [add]
[ cat2 [v]] [add]
私が欲しいのはまさにこれです
[ cat1 [v]] euro 7% 80 [add]
[ cat2 [v]] euro 19% 50 [add]
[ [v]] [add]