所以我的搜索功能有问题,我只需要搜索字符串并在页面上显示结果,目前使用的是Javascript和HTML,这是我的代码。
<form id="searchForm" action="javascript:findString();" class="navbar-form navbar-right" role="search">
<div class="form-group waves-effect waves-light">
<input type="text" id="searchItem" class="form-control" placeholder="Search">
<input class="btn" type="submit" onclick="document.getElementById('searchForm').submit(); return false;" value="Search" />
</div>
</form>
然后这是我的Javascript函数
var TRange = null;
var str = document.getElementById("searchItem");
function findString(str) {
if (parseInt(navigator.appVersion) < 4) return;
var strFoun;
if (window.find) {
// CODE FOR BROWSERS THAT SUPPORT window.find
strFound = self.find(str);
if (!strFound) {
strFound = self.find(str, 0, 1);
while (self.find(str, 0, 1)) continue;
}
} else if (navigator.appName.indexOf("Microsoft") != -1) {
// EXPLORER-SPECIFIC CODE
if (TRange != null) {
TRange.collapse(false);
strFound = TRange.findText(str);
if (strFound) TRange.select();
}
if (TRange == null || strFound == 0) {
TRange = self.document.body.createTextRange();
strFound = TRange.findText(str);
if (strFound) TRange.select();
}
} else if (navigator.appName == "Opera") {
alert("Opera browsers not supported, sorry...")
return;
}
if (!strFound) alert("String '" + str + "' not found!")
return;
}
答案 0 :(得分:0)
是str的元素,你需要得到它的值。
var TRange = null;
function findString() {
var str = document.getElementById("searchItem").value;
...
答案 1 :(得分:0)
脚本有三个问题。
您正在调用函数findString()onSubmit而不传递参数,因此您未定义。
获取搜索文本的代码位于函数
var str = document.getElementById("searchItem");
因此,它只会在初始页面加载时执行,并且只要你点击提交,它就不会从输入中返回当前文本。
var str = document.getElementById("searchItem").value;
最后,您的脚本应如下所示。
var TRange = null;
function findString() {
var str = document.getElementById("searchItem").value;
//rest of the search code goes here
}