更改动态生成的输入字段的值 jquery
changing value of dynamically generated input field jquery
我正在尝试更改动态生成的输入字段的值。
场景:
我有一个名为 add items
的按钮,单击它会附加三个名为 itemname
、units
和 unitprice
的输入字段,其中 itemname
具有一个 jqueryui autocomplete
和 working great
,但我也列出 keypress event
of itemname field
所以当用户在从自动完成中选择所需的项目名称后按回车键时,它应该得到项目名称的单位和价格哪个用户使用自动完成代码选择了:
var count = 1;
$('#add-items').click(function () {
$('#items').append('<div><br><i class="fa fa-angle-right"></i>. <input type="text" name="itemname[]" id="itemname-' + count + '" class="itemname" placeholder="item name"/>\n\
<input type="text" name="units[]" id="units-' + count + '" size="10" placeholder="units" style="text-align: right"/>\n\
<input type="text" name="unitprice[]" id="unitprice-' + count + '" size="10" placeholder="unit price" style="text-align: right"/>\n\
<a href="javascript:void(0);" id="remove-items"><i class="fa fa-trash-o"></i></a></div>');
$('#itemname-' + count).autocomplete({
source: "<?= site_url('administrator/item-autocomplete') ?>",
minLength: 2
});
$('#itemname-' + count).on('keypress', function (e) {
var name = jQuery(this).val();
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
e.preventDefault();
$.ajax({
type: "POST",
url: "<?= base_url() ?>administrator/get-unit-and-price/",
data: {name: name},
dataType: "json",
success: function (data) {
if (data.valid == true) {
//document.getElementById('units-' + count).value = data.unit;
//document.getElementById('unitprice-' + count).value = data.price;
$('#units-' + count).attr('value', data.unit);
$('#unitprice-' + count).attr('value', data.price);
//$('#units-' + count).val(data.unit);
//$('#unitprice-' + count).val(data.price);
} else {
alert(data.html);
}
}
});
}
});
count++;
});
一切正常,但它并没有改变 unit 和 unitprice 值的值,我还尝试提醒 data.unit
和 data.price
并从数据库中提醒正确的值..
我想知道我需要做些什么才能使其正常工作..寻求建议和帮助,在此先感谢..抱歉英语不好..
发布解决方案以便其他人可能会得到一些帮助...:)
::::::::::::::::::::::::::EDIT:::::::::::::::::::::::::::::::
添加 data-count
到动态输入字段 itemname[]
修改了ajax的成功函数:
$('#units-' + thecount).attr('value', data.unit);
$('#unitprice-' + thecount).attr('value', data.price);
现在一切正常,当我按下回车键时,它还会更改 units[]
和 unitprice[]
输入字段的值,
::::::::::::::updated solution::::::::::::::::
var count = 1;
$('#add-items').click(function () {
$('#items').append('<div><br><i class="fa fa-angle-right"></i>. <input data-count="'+ count +'" type="text" name="itemname[]" id="itemname-' + count + '" class="itemname" placeholder="item name"/>\n\
<input type="text" name="units[]" id="units-' + count + '" class="units" size="10" placeholder="units" style="text-align: right"/>\n\
<input type="text" name="unitprice[]" id="unitprice-' + count + '" class="unitprice" size="10" placeholder="unit price" style="text-align: right"/>\n\
<a href="javascript:void(0);" id="remove-items"><i class="fa fa-trash-o"></i></a></div>');
$('#itemname-' + count).autocomplete({
source: "<?= site_url('administrator/item-autocomplete') ?>",
minLength: 2
});
$('#itemname-' + count).on('keypress', function (e) {
var name = jQuery(this).val();
var thecount = jQuery(this).data('count');
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
e.preventDefault();
$.ajax({
type: "POST",
url: "<?= base_url() ?>administrator/get-unit-and-price/",
data: {name: name},
dataType: "json",
success: function (data) {
if (data.valid == true) {
$('#units-' + thecount).attr('value', data.unit);
$('#unitprice-' + thecount).attr('value', data.price);
} else {
alert(data.html);
}
}
});
}
});
count++;
});
感谢大家....
我正在尝试更改动态生成的输入字段的值。
场景:
我有一个名为 add items
的按钮,单击它会附加三个名为 itemname
、units
和 unitprice
的输入字段,其中 itemname
具有一个 jqueryui autocomplete
和 working great
,但我也列出 keypress event
of itemname field
所以当用户在从自动完成中选择所需的项目名称后按回车键时,它应该得到项目名称的单位和价格哪个用户使用自动完成代码选择了:
var count = 1;
$('#add-items').click(function () {
$('#items').append('<div><br><i class="fa fa-angle-right"></i>. <input type="text" name="itemname[]" id="itemname-' + count + '" class="itemname" placeholder="item name"/>\n\
<input type="text" name="units[]" id="units-' + count + '" size="10" placeholder="units" style="text-align: right"/>\n\
<input type="text" name="unitprice[]" id="unitprice-' + count + '" size="10" placeholder="unit price" style="text-align: right"/>\n\
<a href="javascript:void(0);" id="remove-items"><i class="fa fa-trash-o"></i></a></div>');
$('#itemname-' + count).autocomplete({
source: "<?= site_url('administrator/item-autocomplete') ?>",
minLength: 2
});
$('#itemname-' + count).on('keypress', function (e) {
var name = jQuery(this).val();
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
e.preventDefault();
$.ajax({
type: "POST",
url: "<?= base_url() ?>administrator/get-unit-and-price/",
data: {name: name},
dataType: "json",
success: function (data) {
if (data.valid == true) {
//document.getElementById('units-' + count).value = data.unit;
//document.getElementById('unitprice-' + count).value = data.price;
$('#units-' + count).attr('value', data.unit);
$('#unitprice-' + count).attr('value', data.price);
//$('#units-' + count).val(data.unit);
//$('#unitprice-' + count).val(data.price);
} else {
alert(data.html);
}
}
});
}
});
count++;
});
一切正常,但它并没有改变 unit 和 unitprice 值的值,我还尝试提醒 data.unit
和 data.price
并从数据库中提醒正确的值..
我想知道我需要做些什么才能使其正常工作..寻求建议和帮助,在此先感谢..抱歉英语不好..
发布解决方案以便其他人可能会得到一些帮助...:)
::::::::::::::::::::::::::EDIT:::::::::::::::::::::::::::::::
添加 data-count
到动态输入字段 itemname[]
修改了ajax的成功函数:
$('#units-' + thecount).attr('value', data.unit);
$('#unitprice-' + thecount).attr('value', data.price);
现在一切正常,当我按下回车键时,它还会更改 units[]
和 unitprice[]
输入字段的值,
::::::::::::::updated solution::::::::::::::::
var count = 1;
$('#add-items').click(function () {
$('#items').append('<div><br><i class="fa fa-angle-right"></i>. <input data-count="'+ count +'" type="text" name="itemname[]" id="itemname-' + count + '" class="itemname" placeholder="item name"/>\n\
<input type="text" name="units[]" id="units-' + count + '" class="units" size="10" placeholder="units" style="text-align: right"/>\n\
<input type="text" name="unitprice[]" id="unitprice-' + count + '" class="unitprice" size="10" placeholder="unit price" style="text-align: right"/>\n\
<a href="javascript:void(0);" id="remove-items"><i class="fa fa-trash-o"></i></a></div>');
$('#itemname-' + count).autocomplete({
source: "<?= site_url('administrator/item-autocomplete') ?>",
minLength: 2
});
$('#itemname-' + count).on('keypress', function (e) {
var name = jQuery(this).val();
var thecount = jQuery(this).data('count');
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) {
e.preventDefault();
$.ajax({
type: "POST",
url: "<?= base_url() ?>administrator/get-unit-and-price/",
data: {name: name},
dataType: "json",
success: function (data) {
if (data.valid == true) {
$('#units-' + thecount).attr('value', data.unit);
$('#unitprice-' + thecount).attr('value', data.price);
} else {
alert(data.html);
}
}
});
}
});
count++;
});
感谢大家....