我正在使用 datatables.net 的脚本,并在一行中有一个下拉选择,我可以在其中选择一个状态。
我正在使用此代码:
<script>
$(function () {
$('#select-first').on('change', function () {
var options = $(this).find('option:selected').val();
var ids = "<?php echo $ord['order_id']; ?>";
var selecto = 'id=' + ids + '&option=' + options;
$.ajax({
type: "POST",
url: "update_status.php",
data: selecto,
cache: false,
success: function (html) {
alert("yes");
}
});
});
});
</script>
<select id="select-first" name="status" class="ui compact dropdown">
<option value="1">Behandlas</option>
<option value="2">Bearbetas</option>
<option value="3">Nekades</option>
<option value="4">Klar</option>
<option value="5">Klar/Betald</option>
</select>
当我在数据表脚本中选择第 2 页时,它将不起作用。
最佳答案
当 Datable 加载时,它会删除当前未显示的额外 HTML。 因此,如果您想附加事件,您有多种选择:
<强>1。在调用函数数据表之前附加事件
$('.select-first').on('change', function(e) {
alert("hej");
var options = $(this).find('option:selected').val();
var ids = "<?php echo $ord['order_id']; ?>";
var selecto = 'id='+ ids + '&option='+ options;
});
$('#myTable').DataTable();
<强>2。使用委托(delegate)函数:
$('#myTable').DataTable();
$('#myTable').delegate('.select-first', 'change', function () {
alert("hej");
var options = $(this).find('option:selected').val();
var ids = "<?php echo $ord['order_id']; ?>";
var selecto = 'id='+ ids + '&option='+ options;
});
<强>3。使用fnDrawCallback
$('#myTable').DataTable({"fnDrawCallback": function( oSettings ) {
$('.select-first').on('change', function(e) {
alert("hej");
var options = $(this).find('option:selected').val();
var ids = "<?php echo $ord['order_id']; ?>";
var selecto = 'id='+ ids + '&option='+ options;
});
}});
这应该足够了
关于javascript - 数据表和下拉列表选择行 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31202466/