jQuery根据两个选项值更改选择列表值

时间:2013-11-15 18:28:25

标签: jquery

我有两个选择列表,需要根据当前状态更改一个值:

选择列表1:

Option A (All)
Option B (12)
Option C (13)

选择列表2:

Option 1 (All)
Option 2 (14)
Option 3 (15)
Option 4 (16)

如果选择列表1 =选项C&&选择列表2 =选项2然后将选择列表1更改为选项A.

我有以下代码:

$('#edit-lines, #edit-trading-options').change(function () {
  if ($('#edit-lines').val().indexOf(13) && $('#edit-trading-options').val().indexOf(14) > -1) $('#edit-trading-options').val('All');
});

但有些事情是不对的。第二个选择始终保持在“全部”。

谢谢,

史蒂夫

2 个答案:

答案 0 :(得分:2)

如果只是那两个特定选项,那么就这样做:

$('#edit-lines, #edit-trading-options').change(function () {
  if ($('#edit-lines').val() == 13 && $('#edit-trading-options').val() == 14)
     $('#edit-trading-options').val('All');
});

答案 1 :(得分:0)

我认为#edit-lines第一个选择,那么为什么要更改第二个值呢? 此外,if语句中的第一个条件是错误的。它总是返回TRUE,因为你要将字符串与数字进行比较(数字13作为indexOf的参数传递)。
您不需要使用.indexOf()方法。只需比较值即可。

以下是示例:

$('#edit-lines, #edit-trading-options').change(function () {
    if ($('#edit-lines').val() == 13 && $('#edit-trading-options').val() == 14)
        $('#edit-lines').val('All');
});