我有一个html表单,其中包含以下元素
1)一个列表框(包含文件名列表)
s1.txt2013
s2.txt2013
s3.txt2012
s4.txt2012
2)文本框(用户输入的图案说2013)
3)一个按钮
默认列表框包含上面提到的4个文件名。
当用户在文本框中输入文本时(例如,他在文本框中输入2013),然后按下按钮,则应根据文本框中提到的文本过滤掉列表框内容< / p>
所以在这种情况下单击按钮后,列表框应该只包含两个值(即只显示2013年出现的值)。
s1.txt2013
s2.txt2013
我该怎么办? 我做了以下方式.. 我正在使用一个javascript函数,它将获取javascript数组中列表框的所有选项值。现在我无法搜索2013年的数组,并使用包含2013的值填充相同的列表框。
谁能告诉我怎么做?
答案 0 :(得分:1)
你尝试过使用.test吗?对我来说这将是一个很好的方法。
http://www.w3schools.com/jsref/jsref_regexp_test.asp
<script>
var str="Hello world!";
//look for "Hello"
var patt=/Hello/g;
var result=patt.test(str);
document.write("Returned value: " + result);
//look for "W3Schools"
patt=/W3Schools/g;
result=patt.test(str);
document.write("<br>Returned value: " + result);
</script>
答案 1 :(得分:1)
也许您需要两个列表框(选择标记),其中一个被隐藏为主数据源,其中一个对用户可见,您可以使用以下代码并将onclick="buttonClicked()"
添加到按钮属性。
function buttonClicked () {
var textbox = document.getElementById('YOUR TEXTBOX ID'),
listbox = document.getElementById('YOUR SELECT ID'),
mainListbox = document.getElementById('YOUR MAIN SELECT ID');
listbox.innerHTML = '';
for (var childIndex = 0; childIndex < mainListbox.children.length; childIndex++) {
var child = mainListbox.children[childIndex];
if (child.innerHTML.search(textbox.value) != -1) {
option = document.createElement('option');
option.innerHTML = child.innerHTML;
listbox.appendChild(option);
}
}
};