2012-06-14 48 views
0

我有一个下拉菜单,在我的网页,它是这样的:jQuery的功能复位下拉选择

<select id="my_dropdown" name="my_dropdown"> 
     <option value="one">ONE</option> 
     <option value="two">TWO</option> 
     <option value="three">THREE</option> 
    </select> 
    <input type="text" size="10" id="foobar" value="0" /> 

我的jQuery代码是:

​​

不管是什么当我在输入框中输入任何文本时,它会显示警告框并将我的下拉选择重置为一。当我关闭警示框或做其他事情时,我想保留我的选择。什么导致了这种行为?

回答

3
function notOptionOne() { 
    if ($('#my_dropdown').val()!='one') { 
     alert('Option ONE was not selected'); 
    } 
    } 

jQuery中的val()函数既可以获取值,也可以设置值。当你传递一个参数时,jQuery做的是设置控件的值。如果没有参数,请获取价值。

1

尝试这种情况:

$('#my_dropdown').val() !== 'one' 

$('#my_dropdown').val('one')是jquery的包装器,阵列状物体。这就是为什么!$('#my_dropdown').val('one')始终是false而您没有得到alert

1

试试这个:

$('#my_dropdown').change(function(){ 
    if ($(this).val() != 'one') { 
     alert('Option ONE was not selected'); 
    } 
}) 
1

$('#my_dropdown').val('one')将设置#my_dropdown的价值为one(甚至如果建)。

你应该得到#my_dropdown元素的值,并用绳子one比较:

function notOptionOne() { 
    if ($('#my_dropdown').val() != "one") { 
     alert('Option ONE was not selected'); 
    } 
}