0

如果我有这样的标记块:

<select>
   <option value="volvo">Volvo</option>
   <option value="saab">Saab</option>
   <option value="opel">Opel</option>
   <option value="audi">Audi</option>
</select>

即使在任何选项上都没有 selected="selected" 属性,默认值也会是“volvo”。

有没有办法判断该值是通过显式选择属性还是通过默认隐式值派生的?

如果是这样,那么执行此操作所需的 Javascript 或 JQuery 代码是什么?

4

3 回答 3

2
var $changed;
$('select').on('change', function(){
    $changed = true;
});
if($changed){
    //manual selection event
}else{
    //nope, it's default
}

或者,只需添加<option> ---- Choose ---- </option>并避免不必要的代码。

于 2013-07-27T19:48:55.187 回答
1

您可以只检查选定的属性:

if(!$('select').find('option[selected]').length)
    alert('default option');
于 2013-07-27T20:08:50.707 回答
0

也许我没有得到这个问题,但volvo由于 HTML 的工作原理,默认情况下被选中。

您可以将 Ohgodwhy 建议用于“空白”选项。

这是一个小提琴

于 2013-07-27T20:22:31.177 回答