2012-04-05 58 views
3

所以我有一个选择列表,如果默认值没有从---更改,然后返回到形式为false。几乎为了验证的目的,所以我们知道他们选择了一个标题。问题是,由于某种原因,prop()正在将默认值更改为最低值。有没有办法阻止这种情况的发生?这里有一个的jsfiddle:选项支持更改默认选定值 - 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); 
    } 
} 

编辑

我试图改变到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()做什么感到困惑。 – 2012-04-05 20:17:49

+0

很高兴我可以帮助:)。顺便说一下,你的代码示例使用'attr',而不是'prop'。他们为你做了不同的(但相关的)事情。 [prop文档](http://api.jquery.com/prop/)描述了不同之处。 – Jeroen 2012-04-06 06:12:06