如果先前已选择特定的ID,我想防止在select: function()
中重复选择。
我想防止在我的代码中重复roll No
,如下所示。
select: function( event, ui ) {
//var item = ui.item.data;
id_arr = $(this).attr('id');
id = id_arr.split("_");
$('#rollNumber_'+id[1]).val(ui.item.data.rollNumber);
$('#name_'+id[1]).val(ui.item.data.name);
$('#class_'+id[1]).val(ui.item.data.class);
}
HTML
<div id="students">
<div id="first">
<input type="number" id="rollNumber_1" >
<input type="text" class="name" id="name_1" >
<input type="text" id="class_1" >
</div>
<div id="second">
<input type="number" id="rollNumber_2" >
<input type="text" class="name" id="name_2" >
<input type="text" id="class_2" >
</div>
</div>
答案 0 :(得分:1)
防止重复
可以有许多不同的方法,这取决于代码的逻辑和情况。从当前的情况和代码中,我看到了两种实现方法。
让我给一个示例演示
方法1
select: function( event, ui ) {
id_arr = $(this).attr('id');
id = id_arr.split("_");
/* Logic goes here */
var rollNoVal = $('#rollNumber_'+id[1]).val();
if(rollNoVal != '') {
console.log('Duplicate selection is not allowed');
return;
}
/* Logic done here */
$('#rollNumber_'+id[1]).val(ui.item.data.rollNumber);
$('#name_'+id[1]).val(ui.item.data.name);
$('#class_'+id[1]).val(ui.item.data.class);
}
方法2
var selectedStudents = [];
select: function( event, ui ) {
id_arr = $(this).attr('id');
id = id_arr.split("_");
/* Logic goes here */
var inArrayExists = selectedStudents.indexOf(ui.item.data.rollNumber);
if(inArrayExists != -1) {
console.log('Duplicate selection is not allowed');
return;
}
// Push to an array
selectedStudents.push(ui.item.data.rollNumber);
/* Logic done here */
$('#rollNumber_'+id[1]).val(ui.item.data.rollNumber);
$('#name_'+id[1]).val(ui.item.data.name);
$('#class_'+id[1]).val(ui.item.data.class);
}