0

当页面选项值选择为 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>

但它仍然无法正常工作。任何人都可以告诉我为什么这不起作用?

编辑!我还没有确定 jQuery 中的 $price 值。如何将 15 的值放入 jQuery 中?

4

1 回答 1

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('');
        }
    });  
});   
于 2013-09-16T16:47:47.417 回答