我正在尝试编辑下拉列表的选项,并检查下拉列表中是否已存在新编辑的选项。 如果是,它应该发出警报,否则编辑并在下拉列表中添加新选项。
但是有一种情况是用户点击了编辑但后来却不想更改名称并点击“确定”(因为该选项位于下拉列表中,它会提示该选项已经存在)。
如何检查这个,不包括我正在编辑的选项?
function IsNameAlreadyPresent(DropdownID,Name){
var Result = false;
$.each($("#"+DropdownID+" option"),function(i,e){
if(e.innerHTML == Name){
Result = true;
return false;
}
});
return Result;
}
function EditOptionName() {
var Name = $("#txtName").val();
if(IsNameAlreadyPresent('DropdownId',Name)) {
alert("Name \"" + Name + "\" already exists. \nPlease type an unique name.")
}
else{
$('#DropdownId').find(':selected').text($('#txtName').val());
}
}
答案 0 :(得分:0)
您想首先检查用户是否实际编辑了值,或仅选择了以前的值。将其存储在标记变量中,例如'modified'。然后使用以下代码:
function EditOptionName() {
var Name = $("#txtName").val();
var modified;
if(IsNameAlreadyPresent('DropdownId',Name) && modified) {
alert("Name \"" + Name + "\" already exists. \nPlease type an unique name.")
}
else{
$('#DropdownId').find(':selected').text($('#txtName').val());
}
}