Javascript 更改窗体选择类(当除一个选项外选择任何选项时)
因此,我有一个工作特性,当用户在我的选择输入上选择任何选项时,将更改selects类 这很好,但是我想要的是,如果用户再次选择第一个选项,那么类就会被更改回来 第一个选项设置为占位符,我不能给它一个值,因为我只希望在选择任何其他选项时发布信息 我也不能将输入设置为禁用,因为我希望用户能够在之后重新选择,以防他们不想发布该数据 这是一个很长的检查列表,我将数据作为数组发布 以下是我目前拥有的一个JSFIDLE:Javascript 更改窗体选择类(当除一个选项外选择任何选项时),javascript,jquery,Javascript,Jquery,因此,我有一个工作特性,当用户在我的选择输入上选择任何选项时,将更改selects类 这很好,但是我想要的是,如果用户再次选择第一个选项,那么类就会被更改回来 第一个选项设置为占位符,我不能给它一个值,因为我只希望在选择任何其他选项时发布信息 我也不能将输入设置为禁用,因为我希望用户能够在之后重新选择,以防他们不想发布该数据 这是一个很长的检查列表,我将数据作为数组发布 以下是我目前拥有的一个JSFIDLE: http://jsfiddle.net/SD7cd/1/ 代码: 我会对值使用.se
http://jsfiddle.net/SD7cd/1/
代码:
我会对值使用.selectedIndex属性,如下所示:
document.getElementById("sel1").onchange = function () {
this.className = (this.selectedIndex != 0) ? "selectoption-okay":"selectoption";
};
使用if(this.value!=null&&this.value!=undefined)
时的一个问题是,第一个选项将有一个值,即使您没有显式分配它。如果没有明确给出值,option元素的值将默认为其内容,不,它将永远不会为null或未定义
Per:
此属性的文本内容表示标签
选择权。如果未定义,则其默认值为文本
元素的内容
您能试试这个吗?当您选择选项
选择一个选项…
时,如果您没有分配值=''
,那么选择一个选项…
将作为一个值
如此补充
<option selected="selected" value="">Select an option...</option>
^^^^^^^^
演示:完美!非常感谢!我需要研究这个方法,而不是使用if语句
document.getElementById("sel1").onchange = function () {
this.className = (this.selectedIndex != 0) ? "selectoption-okay":"selectoption";
};
<option selected="selected" value="">Select an option...</option>
^^^^^^^^
<select id="sel1" class="selectoption" name="desc[]">
<option selected="selected" value="">Select an option...</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
document.getElementById("sel1").onchange = function() {
this.className = "selectoption";
if(this.value != '' )
{
this.className = "selectoption-okay";
}
};