2012-04-05 3 views
3

Итак, у меня есть список выбора, и если значение по умолчанию не было изменено с ---, тогда верните его в форму false. В значительной степени для целей проверки, поэтому мы знаем, что они выбрали название. Проблема в том, что по какой-то причине prop() меняет значение по умолчанию на самое нижнее значение. Есть ли способ избежать этого? Вот JSFiddle:Опция Prop Изменение значения по умолчанию - JQuery

JSFiddle Link

А вот код:

HTML

<form onSubmit="return checkSelect()"> 
<select id="title" name="title"> <option value="---">---</option> <option value="Administrator">Administrator</option> <option value="Asst. Admin.">Asst. Admin.</option> <option value="Director">Director</option> <option value="Asst. Director">Asst. Director</option> <option value="IT Director">IT Director</option> <option value="Manager">Manager</option> <option value="Medical Officer">Medical Officer</option> <option value="Other">Other</option> </select> 
    <input type="submit" value="submit" /> 
</form> 

JS

function checkSelect(){ 
try{ 
    var val = $('#title option').attr('selected', 'selected').val(); 
    alert(val); 
    return false; 
    } 
    catch(err){ 
     alert(err.message); 
    } 
} 

EDIT

Я попытался изменить к ATTR(), чтобы увидеть, если это поможет, но он производит ту же проблему :(

ответ

2

attr(attribute, value) функции, которую вы используете, установив атрибут значения, см the attr doc. Попробуйте изменить:

var val = $('#title option').attr('selected', 'selected').val(); 

к:

var val = $('#title option:selected').val(); 

См this jsfiddle.

+0

Это сработало, спасибо! Я должен быть смущен тем, что делает prop(). –

+0

Рад, что я мог помочь :). Кстати, в вашем примере кода используется 'attr', а не' prop'. Они делают разные (но связанные) вещи для вас. В документации [prop documentation] (http://api.jquery.com/prop/) есть описание разницы. – Jeroen