0

同じフィールドセットに 2 つの選択ボックスがあります。jqueryを使用して両方にオプションを追加していますが、両方に同じデフォルト値を設定したいと考えています。

$(function(){
    var selectbox = $('.selectbox select');
    selectbox.prepend('<option value="Select a question" selected="selected">Select a question</option>');
    selectbox.children('option').each(function() {
        var option = $(this);
        option.removeAttr('disabled');
    });
});

設定されている無効な属性を削除しようとしても、オプションに対して2番目の選択ボックスを無効に設定する理由がわかりません。

4

2 に答える 2

1

以下のように、ループを使用prependするたびにオプションを使用する必要があります。select.each()

var selectbox = $('.selectbox select');
selectbox.each(function() {
    $(this).prepend('<option value="Select a question" selected="selected">Select a question</option>');
});

あなたのコードはoption1 つに追加されselectます。disableそして、あなたは目的のためにそれらをする必要はありませんprepend.

デモ

ノート

option属性がある場合、disabled上記のコードで問題が発生することはないと思います。ここを参照してください。

そして、できることdisabledすべてから属性を削除するには:option

var selectbox = $('.selectbox select');
selectbox.each(function() {
    $(this).find('option').removeAttr('disabled'); // remove disabled attr
    $(this).prepend('<option value="Select a question" selected="selected">Select a question</option>');
});

デモ

于 2012-07-19T15:24:34.783 に答える
0

これは、選択メニューを検索し、次にオプション要素を追加し、最初のオプションを検索してそれを選択して設定することで実行できます。

$('.selectbox select')
  .prepend('<option value="Select a question" selected="selected">Select a question</option>')
  .find('option:first-child').attr('selected', 'selected');​
于 2012-07-19T15:28:40.613 に答える