我有多个带有rel
属性的按钮。我称他们为rel1
,rel2
等。
rels包含我使用Javascript检索的数据。
当我点击按钮时,按钮需要发送第二个JavaScript。第二个JavaScript将rel
发送到文本框。
到目前为止,脚本正在运行。但是,当我点击第一个文本框的第二个rel
按钮时,填充了rel1
的数据的内容将变空。
有人知道问题是什么以及我如何解决它?
这是button1的脚本:
<script type="text/javascript">
$( document ).ready(function() {
$('#grid1').DataTable({
"bprocessing": true,
"serverSide": true,
"ajax": {
"url": "response1.php",
"type": "POST",
"error": function(){
$("#employee_grid_processing").css("display","none");
}
},
"columnDefs": [ {
"targets": 6,
"render": function ( data, type, full, meta ) {
return '<button type="button" id="product_select1" rel1="'+data+'" onclick="getProduct1()">Button</button>';
}
} ]
});
});
</script>
此脚本将数据发送到文本框:
<script type="text/javascript">
$('body').on('click', '.selectClass', function () {
var product_txt1 = $(this).attr('rel1');
$("#product_txt1").val(product_txt1);
modal1.style.display = "none";
});
</script>
也许是它的必要条件。这是我的第二个脚本:
<script type="text/javascript">
$( document ).ready(function() {
$('#grid2').DataTable({
"bprocessing": true,
"serverSide": true,
"ajax": {
"url": "response2.php",
"type": "POST",
"error": function(){
$("#employee_grid_processing").css("display","none");
}
},
"columnDefs": [ {
"targets": 6,
"render": function ( data, type, full, meta ) {
return '<button type="button" id="product_select1" rel2="'+data+'" onclick="getProduct2()">Button</button>';
}
} ]
});
});
</script>
<script type="text/javascript">
$('body').on('click', '.selectClass', function () {
var product_txt2 = $(this).attr('rel2');
$("#product_txt2").val(product_txt2);
modal2.style.display = "none";
});
</script>
答案 0 :(得分:1)
问题是当你点击一个按钮时,它会触发所有点击功能。因为你按类处理点击功能。您需要按唯一ID指定按钮,并按该ID处理单击功能。您可以合并点击功能:
$('body').on('click', '.selectClass', function () {
var product_txt1 = $(this).attr('rel1');
var product_txt2 = $(this).attr('rel2');
if(product_txt1 != null && product_txt1 != undefined){
$("#product_txt1").val(product_txt1);
modal1.style.display = "none";
}
if(product_txt2 != null && product_txt2 != undefined){
$("#product_txt2").val(product_txt2);
modal2.style.display = "none";
}
});