2012-02-07 143 views
0

我有一个简单的PHP脚本,它带有两个选择字段,它们都是简单的数字值。脚本对两个字段的总和也有最大值。我试图动态地过滤第二个下拉列表,以便用户不能选择超过最大值。例如,如果我的最大值是10,那么第一个选择下拉列表将会有1-10个。选择6的用户将只能在第二个选择下拉列表中选择0-4。根据另一个选择下拉菜单筛选一个HTML选择下拉菜单

我知道这应该是相当简单的,但我是一个总的JavaScript/jQuery新手。我有搜索到SO和Google,但我不明白我已经知道从哪里开始的例子,更不用说弄清楚如何根据我的需要定制它们。我已经提供了我已经有的代码,显然没有任何我需要的过滤。

一些示例代码(假设已定义$最大值):

<script type="text/javascript"> 
    var max = <?php echo $maximum; ?>; 
</script> 

<select name="dropdown1" id="dropdown1"> 
<?php 
for ($i = 1; $i <= $maximum; $i++) 
{ 
    echo '<option value="'.$i.'">'.$i.'</option>'; 
} 
?> 
</select> 
<select name="dropdown2" id="dropdown2"> 
<?php 
for ($i = 0; $i <= $maximum; $i++) 
{ 
    echo '<option value="'.$i.'">'.$i.'</option>'; 
} 
?> 
</select> 

在此先感谢。

我现在有下面这段的jQuery在它自己的.js文件:

$(document).ready(function() { 
// var max ?? 
$("#dropdown1").change(function() { 
    var selectedVal = $(this).find("option:selected").val(); 
    $("#dropdown2 option").removeAttr("disabled").removeAttr("selected"); 
    $("#dropdown2 option").each(function() { 
     if($(this).val() > max - selectedVal*1) 
      $(this).attr("disabled", "disabled"); 

    });  
}); 
}); 

不过,我有点坚持从我的PHP脚本到jQuery的获得$最大。我想我必须创建一个JavaScript变量,但不太确定如何将它传递给jQuery。如果我将jQuery嵌入到相同的PHP脚本中,只需将它回显出来,我可以弄清楚如何做到这一点,但不太确定如何将它作为参数传递。

+0

更新我的代码基础上的意见。但不知道如何将一个变量传递给jQuery代码片段。 – Biggles 2012-02-12 23:29:48

回答

0

我对你的情况更新legendofawesomenesscode

+0

这几乎是我想要的东西,甚至更好,我想我理解它......只需要弄清楚jQuery的参数传递。 – Biggles 2012-02-12 23:30:46

1

Here是一个工作小提琴。而且,相关的jQuery代码:

$(document).ready(function() { 
    $("#select1").change(function() { 
     var selectedVal = $(this).find("option:selected").val(); 

     $("#select2 option").each(function() { 
      if($(this).val() >= selectedVal) 
       $(this).attr("disabled", "disabled"); 

     }); 
    }); 
}); 
+0

嘿diddle +1小提琴 – 2012-02-07 23:51:06

相关问题