另一个新的问题所以请光临我。我有一个看起来像这样的选择器:
<select id="patientSelect">
<option disabled selected style='display: none;' id="patient0">
Incoming Patients</option>
<option id="patient1"></option>
<option id="patient2"></option>
</select>
因为我想要选择器的占位符类型文本(即第一个选项)。并且使用我的javascript我想要它,以便如果所选的选项是patient1并且您点击了一个按钮它将被删除并且将返回显示残疾的'入境患者'的事情。 javascript:
$(".ui-btn").click(function(){
remove();
$('#patientSelect :selected').attr('selected', '0');
$('#patientSelect').change();
});
function remove(){
var x = document.getElementById("patientSelect");
x.remove(x.selectedIndex);
}
问题是它总是删除多个选项,所以如果我摆脱“patient2”并尝试运行remove(),列表就会变成一个很长的空白列表。所有帮助表示赞赏,请不要太苛刻。 :P
修改 对不起,基本上我想要永远删除文本'Incoming Patients'(这是我的选择器的第一个选项)。无论函数remove()'尝试运行多少次。它可以删除其他选项,只是从来没有第一个。 这可能是不可能的,我不确定.. 如果还有另一种方法可以将文本放到选择器上而没有选项,那也很好: - )
可能是这样的:
function remove(){
if(option != 1){
var x = document.getElementById("patientSelect");
x.remove(x.selectedIndex);
}
}
答案 0 :(得分:1)
尝试
var $ps = $('#patientSelect');
$(".ui-btn").click(function () {
var $sel = $ps.find('option:selected')
if ($sel.index() > 0) {
$sel.remove();
$ps.val($ps.find('option:eq(0)').val())
}
});
演示:Fiddle
答案 1 :(得分:1)
你可以尝试一下。
$(".uibtn").click(function(){
remove();
$('#patientSelect').append("<option disabled selected style='display: none;' id='patient0'>Incoming Patients</option>");
$('#patientSelect').change();
});
function remove(){
var x = document.getElementById("patientSelect");
x.remove(x.selectedIndex);
}