当选项选择另一个选项值时,使用jQuery禁用选项值

时间:2013-09-16 16:04:34

标签: jquery html sql

我想在页面选项值选择为1时禁用价格选项值15.禁用它的原因是因为值为15的行被称为1次。这是选项值的代码

<td align="right">Select Page:
    <select name="page" id="page">
        <option selected disabled="disabled">Select</option>
        <option value="1"> 1 </option>              
    </select>
</td>

这是价格的选项价值

<td align="right">Select Price:
    <select name="price" class="calc" id="price">
        <option selected disabled="disabled">Select</option>
        <option value="15" class="calc" id="15"> $15 </option>
        <option value="10" class="calc" id="10"> $10 </option>
        <option value="5" class="calc" id="5"> $5 </option>
    </select>
</td>

这是我的SQL查询

$ss = mysql_query("select page from images");//for getting the value
$r = mysql_query("select page from images");//for getting number of row
$a = mysql_fetch_array($ss, MYSQL_NUM);
$row = mysql_num_rows($r);
$result = $a[0];

这是我使用的jQuery

<script>
    var $s = 1;
    var $page = $('#page'),
    $price = $('#price');
    $page.change(function(){
        if($page.val() == <?php echo $result ?>){
            if($s == <?php echo $row?>){
                $price.attr('disabled','disabled').val('');
            }else{
                $price.removeAttr('disabled');
            }
        }
    }).trigger('change');               
</script>

但它仍无效。任何人都可以告诉我为什么这不起作用?

EDIT! 我还没有确定jQuery中的$ price值。如何在jQuery中输入15的值?

1 个答案:

答案 0 :(得分:0)

好的,有些事情。

首先,你不应该使用函数.change()以及触发器trigger('change'),选择其中一个。

然后,您应该将此脚本代码放在.ready()函数中,以便在页面加载时准备就绪。

此外,您可以使用[]选择器属性一次选择所有选项,而不是迭代它们(我认为这是您要做的)。像这样的最终功能:

$(document).ready(function() {
    var $s = 1;
    var $page = $('#page');
    var $price = $('#price');
    var $amt = '<?php echo $result ?>';

    $page.change(function() {
        var x = 1;
        if($page.val() == <?php echo $result ?>) {
            $("#price option[value!='"+$amt+"']").removeAttr('disabled');
            $("#price option[value='"+$amt+"']").attr('disabled','disabled').val('');
        }
    });  
});