0

我的页面中有一个下拉菜单,它是这样的:

   <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 代码是:

   $('#foobar').keyup(function(){
       notOptionOne();
   }

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

无论我的下拉列表中的选择是什么,当我在输入框中输入任何文本时,它都会显示警告框并将我的下拉选择重置回一个。当我关闭警报框或执行任何其他操作时,我想保留我离开的位置。是什么导致了这种行为?

4

4 回答 4

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

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

于 2012-06-14T06:43:24.763 回答
1

尝试这个:

$('#my_dropdown').change(function(){
   if ($(this).val() != 'one') {
      alert('Option ONE was not selected');
   }
})
于 2012-06-14T06:46:06.387 回答
1

尝试这个:

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

$('#my_dropdown').val('one')是jquery wrapper,类数组对象。这就是为什么!$('#my_dropdown').val('one')总是 isfalse而你没有得到alert.

于 2012-06-14T06:44:11.973 回答
1

$('#my_dropdown').val('one')将#my_dropdown 的值设置为one(即使在构造中)。

您应该获取#my_dropdownelement 的值并将其与 string 进行比较one

function notOptionOne() {
    if ($('#my_dropdown').val() != "one") {
       alert('Option ONE was not selected');
    }
}
于 2012-06-14T06:49:31.403 回答