我是jquery的新手,在这个项目中,我正在尝试制作药房系统。我想要一个功能,用户可以在其中添加来自供应商的购买。 这是我的代码:
$(document).on('change', '.supplier_name', function() {
var supplier_name = $('.supplier_name').val();
$.ajax({
url : "<?php echo base_url('example/getmedbysupplier')?>",
method : "POST",
data : {supplier_name: supplier_name},
async : false,
dataType : 'json',
success: function(data){
var html = '';
var i;
html += '<option selected="true" value="" disabled >Choose medicine</option>';
for(i=1; i<data.length; i++){
html += '<option>'+data[i].medicine_name+'</option>';
}
$('.medicine_name').html(html);
}
});
});
var count = 1;
$('#addpurchase').on( 'click', function () {
purchase.row.add( [
'<select style="width:100%;" class="form-control medicine_name" id="medicine_name'+count+'" name="medicine_name[]" data-stock="#stock'+count+'" data-unit="#unit'+count+'" data-price="#price'+count+'"><option selected="true" value="" disabled >Choose supplier</option>',
'<input id="stock'+count+'" name="stock[]" class="form-control stock" readonly >',
'<input id="unit'+count+'" name="unit[]" class="form-control" readonly>',
'<input id="price'+count+'" name="price[]" class="form-control price" readonly>',
'<input type="number" id="quantity'+count+'" name="quantity[]" class="form-control quantity">',
'<input id="subtotal'+count+'" name="subtotal[]" class="form-control subtotal" readonly>',
'<button id="removeproduct" class="btn btn-danger btn-sm" type="button"><span class="fa fa-trash"></span> Delete</button>',
] ).draw( false );
count++;
} );
问题是onchange只工作一个。当我再次添加该行时,它会一直告诉我选择供应商(我已经完成了)。我尝试了另一种解决方案,例如绑定jquery,父/兄弟和其他解决方案,但它仅在表内起作用。
因此,我通过点击任意数量的按钮来找出答案,然后选择供应商,如下所示:
如何使其在变更时自动工作(我不需要先添加产品)?
答案 0 :(得分:0)
您绑定到#addpurchase
的函数正在生成错误消息。它正在创建一个select元素,而没有关闭标签,并且只有一个select供应商选项。
<select style="width:100%;" class="form-control medicine_name" id="medicine_name'+count+'" name="medicine_name[]" data-stock="#stock'+count+'" data-unit="#unit'+count+'" data-price="#price'+count+'"><option selected="true" value="" disabled >Choose supplier</option>
那么,如何在不选择供应商文本的情况下期待新行呢?