调用addrow()
时,我们希望使用id="rowTemplate"
添加动态行。
我想使用(id="selectitem")
将数据加载到下拉列表"myfunction()"
。
但是这里的问题是每次调用"myfunction()"
时,只为第一行的下拉列表加载数据:
//adding dynamic rows
function addRow() {
$('#orderItem').append($('#rowTemplate').html());
console.log($('#rowTemplate').html());
myFunction();
}
function myFunction() {
document.getElementById("selectitem").options.length = 0
var SupID = document.getElementById("selectSup").value;
document.getElementById("demo").innerHTML = "Supplier Id: " + SupID;
var dataString = 'SupID='+ SupID;
// AJAX Code To Submit Form.
var postForm1 = { //Fetch form data
'functionName': "itemLoad",
'SupID': SupID
};
$.ajax({
type: 'POST',
url: 'suppierOrderdb.php',
data: postForm1,
//dataType: 'json',
success: function (data) {
var dd = data;
var data = (typeof dd) == 'string' ? eval('(' + dd + ')') : dd;
for (var i = 0; i < dd.length; i++) {
$('#selectitem').append($('<option>',
{
value: data[i].ItemId,
text : data[i].ItemId +" - "+ data[i].ItemName
}));
}
}
, error: function (e) {
alert(e);
}
});
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="form-group row">
<label for="selectitem" class="control-label col-xs-2">Item Name</label>
<div class="col-xs-2">
<select name='selectItem[]' class='form-control form-control-sm' id='selectitem'>
</select>
</div>
<label for="Qty" class="control-label col-xs-2">QTY</label>
<div class="col-xs-2">
<input class="form-control" name="Qty[]" type="text" value="" id="Qty">
</div>
</div>
<a href="javascript:void(0);" class="remCF">Remove</a>
</div>
&#13;
答案 0 :(得分:0)
id
在同一文档中应该是唯一的,否则您的HTML也会无效,并且会调用第一个带有重复id
的元素,因此请将您的dep id
替换为普通上课:
$('#orderItem').append($('#rowTemplate').html());
可能是:
$('#orderItem').append($('.rowTemplate').html());
希望这有帮助。
答案 1 :(得分:0)
就像wlh和Zakaria Acharki所说,ID在DOM中是独一无二的。
查看this link from css-tricks以了解有关类和ID之间差异的更多信息。
另外,要访问jQuery中的类,请使用$('.classname')
,将#
替换为.
的ID。
答案 2 :(得分:0)
$('[id=selectitem]').append($('<option>', {
value: data[i].ItemId,
text: data[i].ItemId + " - " + data[i].ItemName
}));