2013-07-27 1 views
0

Если у меня есть блок разметки, как это:Как обнаружить неявный выбор опции HTML с JQuery (или Javascript)

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

значение по умолчанию будет «Вольво», даже если там не выбрано =» выбранного "свойства по любой опции.

Есть ли способ узнать, получено ли значение через явное выбранное свойство по сравнению с неявным значением по умолчанию?

Если да, то какой именно код Javascript или JQuery для этого?

ответ

1

Вы можете просто проверить выбранный атрибут:

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

По какой-то причине мои первоначальные попытки обнаружить выбранную собственность не удались, но это то, что я искал. Я не искал ничего, вызванного событием изменения. –

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

Или просто добавьте <option> ---- Choose ---- </option> и избегайте этого ненужного кода.

+0

вы пропустили $, если условие 'если ($ изменено)' .. :) – bipen

+1

@bipen Спасибо :) Я только human..lol – Ohgodwhy

+2

@Ohgodwhy Мы все человеческие , кроме, может быть, Jon Skeet ... –

0

Может быть, я не понял вопрос, но volvo выбран по умолчанию, так как работает HTML.

Вы можете использовать предложение Ohgodwhy для «пустого» варианта.

Вот fiddle

Смежные вопросы