Ich habe mehrere Schaltflächen mit dem Attribut rel
. Ich nannte sie rel1
, rel2
usw.JavaScript löscht den Text in meinem Textfeld
Die Rels enthält Daten, die ich mit Javascript abrufen.
Wenn ich auf den Button klicken muss die Schaltfläche senden ein zweites JavaScript ausführen. Das zweite JavaScript sendet die rel
an ein Textfeld.
Bis jetzt funktioniert das Skript. Aber wenn ich auf die Schaltfläche für die zweite rel
die erste Textbox, die mit den Daten von rel1
gefüllt ist, wird leer.
Weiß jemand, was das Problem ist und wie ich es lösen kann? Hier
ist das Skript für 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>
Diese Skripte sendet die Daten an das Textfeld:
<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>
Vielleicht ist es neccesary. Hier ist mein zweites Skript:
<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>
„Aber wenn ich für die zweite rel auf die Schaltfläche klicken Sie auf das erste Textfeld, dass mit den Daten von rel1 gefüllt ist leer wird.“ Ich kann es nicht verstehen. Könnten Sie es deutlicher erklären? – Duannx
Ich machte etwas in jfiddle. https://jsfiddle.net/pvf2fws5/. Wenn ich auf "Button 1" in "textfield1" klicke, bekomme ich die Daten (data = 1). Wenn ich auf 'Button 2' klicke, wird' textfield1' leer und 'textfield2' wird mit Daten gefüllt (data = 2). – John
Ihre Click-Event-Handler sind beide basierend auf der gleichen Elementklasse gebunden (und in Ihrer Geige haben keine Elemente diese Klasse), aber dann wird davon ausgegangen, dass das aktuelle Element ('this') ein Attribut mit einem eindeutigen Namen hat, an das sie ausgeben ein Element mit einer spezifischen ID. Das ergibt keinen Sinn. Sie benötigen entweder separate Handler, die an bestimmte Elemente gebunden sind, oder, besser gesagt, einen generischen Handler, der basierend auf der Klasse, die die DOM-Navigation verwendet hat, gebunden wird, um herauszufinden, welche Eingabe der angeklickten Schaltfläche zugeordnet ist. – nnnnnn