我的本地站点中的 JavaScript 搜索函数一直返回未定义
My javascript search function in my local site keeps returning undefined?
所以我的搜索功能有问题,我只需要搜索字符串并在页面上显示结果,目前使用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;
}
在你的
代码str是元素,你需要得到它的值。
var TRange = null;
function findString() {
var str = document.getElementById("searchItem").value;
...
脚本存在三个问题。
-
你在提交时调用函数findString()而不传递参数,因此你变得未定义。
-
获取搜索文本的代码放置在函数外部
var str = document.getElementById("searchItem");
因此,它只会在初始页面加载时执行,并且 str 不会在您点击提交时从输入返回当前文本。
- str 将只有 dom 对象,而不是搜索字符串。所以把它改成
var str = document.getElementById("searchItem").value;
最后,您的脚本应如下所示。
var TRange = null;
function findString() {
var str = document.getElementById("searchItem").value;
//rest of the search code goes here
}
相关文章:
- Javascript搜索函数错误
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- “单独列搜索”上的Datatables setinterval函数
- 在JavaScript中编译搜索后,获取链接到函数的属性标记的Element
- 文本框搜索/Javascript函数数组**不对应**
- 可以用两个搜索值替换JavaScript.replacement函数
- 搜索函数未返回结果
- 弹性搜索 JS 函数返回值
- jQuery函数来搜索数组值
- 二叉搜索树 JavaScript 实现 - 删除函数
- HTML/Javascript 搜索函数与 AJAX
- 通过在 JavaScript 函数中使用 CFquery搜索 DataBSE
- 尝试取消反弹搜索函数调用会导致不会将任何事件传递给函数
- 递归函数进行搜索
- 谷歌地图API v3放置搜索 - 将另一个参数传递给回调函数
- Google Maps API javascript:附近搜索回调函数不调用
- 使用 jQuery 隐藏搜索函数中不匹配的选项
- jQuery getScript 函数添加了搜索参数,并抛出 404 错误
- 使用list.js(搜索函数)搜索HTML表-修改以显示所有不包括搜索词的行
- 我在使用Javascript's indexOf()函数搜索对象并在表上显示结果时遇到了麻烦