我現在有一個select
這說明選項如何修改jQuery的選上的選定文本
<option>{{ tag.name }} ({{ tag.count }})</option>
不過,我想,當用戶選擇該選項,在選定的選項,只有name
是可見的,不是最後一部分。想想stack *如何顯示標籤計數,但在選擇時隱藏它。
想法?謝謝。
編輯:抱歉,不清楚。在chosen中,當您選擇一個選項時,文本框將填充所選數據。我想要那文字被修改,而不是<select>
上的那個!
我現在有一個select
這說明選項如何修改jQuery的選上的選定文本
<option>{{ tag.name }} ({{ tag.count }})</option>
不過,我想,當用戶選擇該選項,在選定的選項,只有name
是可見的,不是最後一部分。想想stack *如何顯示標籤計數,但在選擇時隱藏它。
想法?謝謝。
編輯:抱歉,不清楚。在chosen中,當您選擇一個選項時,文本框將填充所選數據。我想要那文字被修改,而不是<select>
上的那個!
編輯:對於你編輯,如果選項元素具有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/
顯然你會使用id或class來標識選擇和輸入,而不僅僅是$("select")
和$("input")
,但你明白了。
我原來的答覆(我的你原來的問題的解釋):
你可以做這樣的事情:
<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/
(顯然你可以通過cachin來優化一些功能g的jQuery對象等等,但我保持簡單的概念驗證。)
選上的不支持該功能,你想
均田八九不離十了一個解決辦法......但它並不一致,因爲如何選擇做內部工作的東西。 http://jsfiddle.net/2hHYh/
選中某個選項時並不總是觸發更改事件,但它仍然會將顯示文本設置爲任何被點擊的內容。 :O當再次點擊相同的選項時,這一點尤爲明顯。
這對於選擇不起作用。我已經使用這個。請閱讀我的編輯。 :) – rebelliard
編輯我的原始答案,選擇不明顯你想做的。 – Nal
但是,感謝您將插件引入我的視線。儘管缺乏選擇,這是相當不錯的。 – Nal
試試這個代碼:
$("select").change(
function()
{
var value = $("option:selected").html()
var new_value = value.replace(/\s*\([0-9]+\)/, "");
$("option:selected").html(new_value);
});
謝謝你。請閱讀我的編輯。 :) – rebelliard
如何識別textarea?我不知道HTML結構。 – LonelyWebCrawler
$('select').on('change', function() {
var _selected = $(this).find('option:selected'),
_orig = _selected.text();
var _index = _orig.indexOf(' (');
_selected.text(_orig.substring(_index, ''));
});
謝謝你。請閱讀我的編輯。 :) – rebelliard
我不確定你的意思,對不起。你想改變選項的價值嗎? – LonelyWebCrawler
@LonelyWebCrawler如果選項顯示「Music(25)」,選中時,我希望文本輸入僅顯示「音樂」,即將所有內容都去掉。 – rebelliard