0

無効なドロップダウンを有効にして、json から値を変更する必要があります。私のプログラムに<select></select><select></select> 連続選択がある場合、それは正常に機能しますが、間に要素がある場合は機能しません。

インデックス ページのコード:

<ul>
 <li>
  <label>Item 1</label>
  <select name="item1" id="item1" class="update">
   <option value="">Select Item1</option>
   <option value="1">1</option>
   <option value="2">2</option>
  </select>
 </li>
 <li>
  <label>Item 2</label>
  <select name="item2" id="item2" class="update" disabled="disabled">
   <option value="">Select Item2</option>
   /*output based on item1*/
  </select>
</li>
<li>
 <label>Item 3</label>
 <select name="item3" id="item3" class="update" disabled="disabled">
  <option value="">Select Item3</option>
  /*output based on item2*/
 </select>
</li>

インデックスにロードされたスクリプト(およびjquery):

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('/test/mod/update.php', { id : id, value : v }, function(data) {
                if (!data.error) {
                    obj.next('.update').html(data.list).removeAttr('disabled');
                } else {
                    obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
                }
            });
        }
    }
};
$(function() {

    $('.update').live('change', function() {
        formObject.run($(this));
    });

});

私は私が変更する必要があることを知っています

obj.next('.update').html(data.list).removeAttr('disabled');

しかし、それを理解できませんでした。

また、これはjquery 1.6.4では機能しますが、1.9.1では機能しません。最新のjqueryと互換性があるようにコードを更新するには、どのセクションを変更する必要がありますか?

4

3 に答える 3

3

.removeAttr('disabled')useを使用する代わりに.prop('disabled', false). 1.6以降、要素のプロパティ.propを更新する方法として好まれていますが、1.7以降はさらにそうです

于 2013-04-17T03:32:25.863 に答える
2

あなたはこのようにそれを持っている必要があります

obj.next('.update').html(data.list).removeAttr('disabled'); と置き換えます

 obj.parent().next().children().removeAttr('disabled');

jsfiddle: http://jsfiddle.net/habo/7vMw8/

于 2013-04-17T03:38:09.953 に答える