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 の値を特定していません。jQueryに15の値を入れる方法は?

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 に答える