0

私は現在、selectオプションを次のように表示する

<option>{{ tag.name }} ({{ tag.count }})</option>

ただし、ユーザーがオプションを選択すると、選択したオプションで、name最後の部分ではなく、のみが表示されるようにしたいと思います。stack* がどのようにタグ数を表示するかを考えてみてください。選択すると非表示になります。

アイデア?ありがとう。

編集:明確でなくて申し訳ありません。selectedでは、オプションを選択すると、選択したデータがテキスト ボックスに表示されます。のテキストではなく、そのテキストを変更したい<select>!

4

4 に答える 4

1

編集:編集のため、オプション要素valueに使用したいテキストに設定された属性がある場合は、次を試してください:

$(document).ready(function() {
    $("select").change(function() {
        $("input").val( $(this).val() );
    }).change();
});​

デモ: http://jsfiddle.net/CdKGT/2/

valueまたは、何らかの理由で属性を使用できず、表示されているものからテキストを抽出したい場合:

$("select").change(function() {
    $("input").val( $("option:selected",this).text().replace(/ \(\d+\)$/,"") );
}).change();

デモ: http://jsfiddle.net/CdKGT/3/

$("select")id または class を使用して、 andだけでなく select と input を識別することは明らかです$("input")が、アイデアはわかります。

私の元の回答(元の質問の私の解釈について):

次のようなことができます。

​&lt;select>
<option value="css" data-count="1">css 1</option>
<option value="html" data-count="55">html 55</option>
<option value="java" data-count="37">java 37</option>
<option value="javascript" data-count="20">javascript 20</option>
<option value="jquery" data-count="12">jquery 12</option>
</select>

その後:

​$(document).ready(function() {
    $("select").change(function() {
        $(this).find("option").html(function(){ return this.value + " " +
                                                       $(this).attr("data-count"); });
        $("option:selected",this).html(this.value);
    }).change();
});​​​

デモ: http://jsfiddle.net/CdKGT/1/

(明らかに、jQuery オブジェクトなどをキャッシュすることで関数を少し最適化できますが、概念を証明するために単純にしています。)

于 2012-08-23T21:14:41.853 に答える
0

選択した機能は、必要な機能をサポートしていません

ちょっとした回避策があります...しかし、選択された方法が内部的に機能するため、一貫して機能しません。 http://jsfiddle.net/2hHYh/

オプションが選択されたときに Chosen が常に変更イベントを発生させるわけではありませんが、表示テキストはクリックされたものに設定されます。:O これは、同じオプションをもう一度クリックすると特に顕著です。

于 2012-08-23T21:10:06.857 に答える
0

このコードを試してください:

$("select").change(
function()
{
    var value = $("option:selected").html()
    var new_value = value.replace(/\s*\([0-9]+\)/, "");
    $("option:selected").html(new_value);
} );        

http://jsfiddle.net/fdrGV/

于 2012-08-23T21:12:04.857 に答える
0
$('select').on('change', function () {
    var _selected = $(this).find('option:selected'),
        _orig = _selected.text();

    var _index = _orig.indexOf(' (');
    _selected.text(_orig.substring(_index, ''));

});

jsフィドル

于 2012-08-23T21:12:27.623 に答える