0

昨日何時間も遊んだ後、あなたの助けを求めることを考えました。この種の質問が以前に尋ねられたかどうかはわかりませんが、そこには何の助けも見つかりませんでした.

私は 4 つの依存ドロップダウンを持っており、ドロップダウンでsqlデータベースからデータを取得しますchange。では、 jQuerychangeは ID を php ファイルに渡し、ドロップダウン データを取得します。nextおよびを使用しnextAllて、依存するドロップダウンを更新します。

私の質問

ドロップダウンの周りに div を配置すると、データが読み込まれなくなります。.updateに変更し、他の100の方法を試しdiv .updateましたが、どれもうまくいきませんでした。

マイコード

var formObject = {
    run : function(obj) {
        if (obj.val() === '') {
            obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
        } else {
            var id = obj.attr('id');
            var v = obj.val();
            jQuery.getJSON('/pfi/mod/update.php', { id : id, value : v }, function(data) {
                if (!data.error) {
                    obj.next('.update').html(data.list).removeAttr('disabled');
                    $('.findCar, .clearAll').fadeOut();  // hide Car button if more data available

                } else {
                    obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
                    $('.findCar, .clearAll').fadeIn();  // show Car button

                }
            });
        }
    }
};
$(function() {

    $('.update').live('change', function() {
        formObject.run($(this));
        $getCarInfoID = $(".update:not(:disabled)").last().val();
    });

});

HTML ドロップダウン

    <form action="" id="pfilterForm" method="post">
    <div>
    <select name="brand" id="brand" class="update">
        <option value="">Select one</option>
        <?php if (!empty($list)) { ?>
            <?php foreach($list as $row) { ?>
                <option value="<?php echo $row['id']; ?>"><?php echo $row['name']; ?></option>
            <?php } ?>
        <?php } ?>
    </select>
    </div><div>

    <select name="make" id="make" class="update"
        disabled="disabled">
        <option value="">----</option>
    </select>
    </div><div>
  <select name="series" id="series" class="update"
        disabled="disabled">
        <option value="">----</option>
    </select>
    </div><div>
    <select name="model" id="model" class="update"
        disabled="disabled">
        <option value="">----</option>
    </select>
    </div> 
    <button name="data" type="button" class="findCar" onclick="getData()" style="display:none;"  >GO</button>
    <button name="data" type="button" class="clearAll" onclick="clearData()" style="display:none;"  >Clear</button>

</form>

divこれをドロップダウンの周りで機能させるにはどうすればよいですか? このチュートリアルを使用して、ここまで取得しました。

4

1 に答える 1

0

あなたは要素を選択することに依存しnext()ています。nextAllこれは、ドキュメントの構造に大きく依存します。

特定の要素をターゲットにしたい場合は、既に一意の ID を持っているため、それらの ID を介して取得できます。

編集:まだhtmlに大きく依存している高速な解決策(私に関する限り、あまりお勧めできません...)は、要素から親に移動し、そこから取得することです。

たとえば、次のようになります。

obj.nextAll('.update')

次のようになります。

obj.parent().nextAll().find('.update')
于 2013-06-11T01:42:24.793 に答える