我试图将这两个代码的想法绑定在一起,但它无法正常工作。
我想在选择完成后禁用第一个选项。
This is the behavior I'm wanting;选择完成后,第一个选项被禁用。
this is my code我希望在选择后续元素时禁用第一个选项。
答案 0 :(得分:1)
[更新的答案]
function displayVals() {
var singleValues = $("select option:selected").text();
if (!isNaN(singleValues )) {
$("#hiddenselect").val(singleValues);
$("<p></p>").html("Percent of :  " + singleValues).appendTo('body');
}
}
$(document).ready(function() {
$("select").change(function() {
displayVals();
if (this.selectedIndex > 0) {
var option = $('option:selected', this);
option.prop('disabled', true);
}
});
});
答案 1 :(得分:1)
我相信这可以回答你的问题:
在displayVals
内,我执行了以下操作:
if ($("#menucompare").prop("selectedIndex") !== "0") {
// Within the select (you could be more specific) find
// the first (direct descendant) option value and
// disable it to make it unselectable
$("select > option:first").prop("disabled", "disabled")
}
此段找出选择菜单的所选索引是什么,如果用户选择了除初始值(0)以外的其他内容,则会设置第一个要禁用的选项。
更新:http://jsfiddle.net/dq97z/72/
根据documentation和@ silkster的建议禁用时,将attr()
更改为prop()
。感谢
此外,如果您不希望在开头选择该选项,您甚至可以在没有seen here的if语句的情况下执行此操作。
function displayVals() {
var singleValues = $("select option:selected").text();
....
$("select > option:first").prop("disabled", "disabled")
}
在加载DOM之后发生禁用(第一个不禁用),因此select仍然可以选择“请选择”。哇...那是很多“选择”。
如果你想在那里留下if语句(这意味着'select one'是可选的,直到实际选择了另一个),你的if语句就需要这样:
if ($("#menucompare").prop("selectedIndex") !== 0) // with no quotes around zero