个性化选择表格

时间:2014-05-27 08:38:46

标签: jquery html forms

我想个性化select输入如何显示其选定的值。

我的select有以下选项:

AAA - blabla
BBB - blabla
CCC - blabla

当我选择一个时,我想只显示前三个字母,而不是在我的短跑之后。例如,选择" AAA - blabla"然后只会显示" AAA"在选择框中。

这里有关于我想要的jsfiddle的演示,在input字段中显示我想要的行为以澄清。

http://jsfiddle.net/LXkkB/1/

<select name="cmbitems" id="cmbitems">
    <option value=""></option>
    <option value="blue">blue - #0000FF</option>
    <option value="green">green - #00FF00</option>
    <option value="red">red - #FF0000</option>
</select>

<input type="text" name="txtColor" id="txtColor" onClick="checkColor()">

目前的JS:

var select = document.getElementById('cmbitems');
var input = document.getElementById('txtColor');
select.onchange = function() {
    input.value = select.value;
}

EDIT1:

我确实有这个:

function populateList() 
{
    var select = document.getElementById("cmbitems");
    var choice = select.selectedIndex;
    var textValue = select.options[choice].text;
    select.options[choice].text = textValue.substring(0,3);
}

但是现在,当我选择所有列表

时,如何重新显示我之前的值

1 个答案:

答案 0 :(得分:0)

据我了解,您希望所选选项的前三个字母text没有价值。

以下是JS:

$('#cmbitems option:selected').text().substring(0,3);

其中.text()将获取匹配元素集合中每个元素的组合文本内容,包括它们的后代。 .substring()方法从两个指定索引之间的字符串中提取字符,并返回新的子字符串。

以下是 Example ,警报不作为输入文字。我希望你自己能做到。