如何通过 select 框向数据表添加一行?
How can I add a row via select box to datatable?
我通过从我的选择框中选择一个选项来向我的数据表添加一行:
<select class="item-select">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi">Audi</option>
</select>
$(document).on('change', '.item-select', function() {
var optionValue = $(this).val();
var optionText = $('.item-select option[value="'+optionValue+'"]').text();
table.row.add({
"id": optionValue,
"name": optionText,
}).draw();
});
它运行良好,但我希望能够再次直接添加相同的选项。
这意味着例如:我添加 Volvo
,然后我添加 Saab
,但是当我现在想添加另一个 Saab
时,它不起作用。我必须添加其他内容,例如 VW
,然后我可以添加 Saab
.
添加一个空白值并重置 select,这不会触发 change
事件。
$(document).on('change', '.item-select', function() {
var optionValue = $(this).val();
var optionText = $('.item-select option[value="'+optionValue+'"]').text();
if (optionValue) {
// table.row.add({
// "id": optionValue,
// "name": optionText,
// }).draw();
$('option', this).first().prop('selected', true)
console.log(`${optionText} added`)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="item-select">
<option>Select make...</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi">Audi</option>
</select>
我通过从我的选择框中选择一个选项来向我的数据表添加一行:
<select class="item-select">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi">Audi</option>
</select>
$(document).on('change', '.item-select', function() {
var optionValue = $(this).val();
var optionText = $('.item-select option[value="'+optionValue+'"]').text();
table.row.add({
"id": optionValue,
"name": optionText,
}).draw();
});
它运行良好,但我希望能够再次直接添加相同的选项。
这意味着例如:我添加 Volvo
,然后我添加 Saab
,但是当我现在想添加另一个 Saab
时,它不起作用。我必须添加其他内容,例如 VW
,然后我可以添加 Saab
.
添加一个空白值并重置 select,这不会触发 change
事件。
$(document).on('change', '.item-select', function() {
var optionValue = $(this).val();
var optionText = $('.item-select option[value="'+optionValue+'"]').text();
if (optionValue) {
// table.row.add({
// "id": optionValue,
// "name": optionText,
// }).draw();
$('option', this).first().prop('selected', true)
console.log(`${optionText} added`)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="item-select">
<option>Select make...</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi">Audi</option>
</select>