如何使用JQuery(或Javascript)检测隐含的HTML选项选择

How to detect implicit HTML option selection with JQuery (or Javascript)

本文关键字:HTML 选择 选项 检测 JQuery 何使用 Javascript      更新时间:2023-09-26

如果我有这样的标记块:

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

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

有没有一种方法可以判断该值是通过显式选择的属性派生的,还是通过默认的隐式值派生的?

如果是,那么需要什么样的Javascript或JQuery代码才能做到这一点?

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

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

您只需检查所选属性:

if(!$('select').find('option[selected]').length)
    alert('default option');

也许我没有得到这个问题,但由于HTML的工作方式,默认情况下会选择volvo

对于"空白"选项,您可以使用Ohgodhwhy建议。

这是一个小提琴