-1

このようなマークアップを作成しています

<select name="country" class="country">
<option selected="selected">--Select Country--</option>
<option value="1">India</option>
<option value="2">United States</option>
<option value="3">United Kingdom</option>
</select>

今、私の要件は、ドロップダウンから何かを選択するときに、それぞれの値が値としてある必要があることです。これを達成する方法を誰かが提案できますか。これをonChangeにしようと思っていましたが、ドロップダウンを2回目にクリックすると値が置き換えられるという問題があります。

ありがとう

4

3 に答える 3

1

このようなもの?

<select name="country" class="country">
   <option selected="selected">--Select Country--</option>
   <option value="1" data-text='india'>India</option>
   <option value="2" data-text='United States'>United States</option>
   <option value="3" data-text='United Kingdom'>United Kingdom</option>
</select>

$('.country').change(function(){
    $('option', this).text(function(){
       return this.dataset.text
    })
    $(':selected', this).text(this.selectedIndex)
})

http://jsfiddle.net/aVBKq/ </p>

于 2012-10-04T09:59:44.313 に答える
1

理解した。mouseup動作しませんが、mousedown動作します! また、私の解決策では、国名を 2 回書く必要もありません。

$('.country').change(function() {
    var selected = $(':selected', this);
    var index = this.selectedIndex;
    if (index) {
        selected.data('savedtext', selected.text()).text(index);
    }
});
$('.country').mousedown(function() {
    $(':selected', this).text($(':selected', this).data('savedtext'));
});

<a href="http://jsfiddle.net/barmar/aVBKq/3/" rel="nofollow">フィドル

編集:

インデックスではなく、オプションの値を表示する別のバージョンを次に示します。

$('.country').change(function() {
    var selected = $(':selected', this);
    var value = selected.val();
    if (value) {
        selected.data('savedtext', selected.text()).text(value);
    }
});
$('.country').mousedown(function() {
    $(':selected', this).text($(':selected', this).data('savedtext'));
});​

フィドル

于 2012-10-04T11:06:10.827 に答える
0

$("select[name='country']").val();デフォルトで使用 すると、適切な値が表示されます。--Select-- には、値として 0 を使用します。

于 2012-10-04T10:34:19.183 に答える