【发布时间】:2012-01-08 02:48:24
【问题描述】:
我是 Javascript 的新手。
我想改进下面提供的脚本中的搜索。
我有以下代码,目前当我在搜索中键入短语“蓝色小部件”时,如果短语“蓝色小部件”按顺序退出,它只会识别/查找复选框。例如,如果我有一个包含“blue cool widgets”的关键字词组或句子,并且我搜索“blue widgets”,即使在我的关键字词组中都存在蓝色和小部件,它也无法找到它。
是否有可能如果我搜索一个包含 2 个甚至 3 个单词的短语,那么它可以在我的页面上找到我的搜索短语的所有单词都存在的任何关键字短语/句子,然后选中该框 (代码已经做了)。唯一的条件是我的搜索短语的所有单词都必须存在于一个句子/字符串中?
如果能找到这个解决方案,我将不胜感激。
<html>
<head>
<script type="text/javascript">
function checkForWord( wordField )
{
var form = wordField.form;
var word = wordField.value.replace(/^\s+/,"").replace(/\s+$/,"").toLowerCase();
var inputs = form.getElementsByTagName("input");
for ( var e = 0; e < inputs.length; ++e )
{
var field = inputs[e];
if ( field.type == "checkbox" )
{
if ( field.value.toLowerCase().indexOf(word) >= 0 )
{
field.checked = true;
} else {
// OPTIONAL, if you do NOTwant to clear previously checked boxes, omit next line:
field.checked = false;
}
}
}
}
</script>
</head>
<body>
<form onsubmit="return false;">
Type a word: <input name="word" onchange="checkForWord(this);" />
<hr>
<label>
<input type="checkbox" name="keywords" value="This is an example sentence with blue and cool widgets not in order and my current script will not find it.
</label></br/>
<label>
<input type="checkbox" name="keywords" value="This sentence will be found if I search for blue widgets because its in this sentence">
All work and no play makes Jack
</label></br/>
<label>
<input type="checkbox" name="keywords" value="I would like for it to be able to find this sentence also since blue and widgets both words exist but are out of order.
</label></br/>
</form>
</body>
</html>
【问题讨论】:
标签: javascript search