javascript问题后的onblur和onfocus
onblur and onfocus after javascript issue
我有一个输入表单
<input id="txtSearch" class="txtSearch" name="SearchPhraseText" type="text"http value="<%= ServiceSite.Resources.Resources.SITEMATER_ENTER_SEARCH_TERM %>" onfocus="handleSearchFocus(this)" onblur="handleSearchBlur(this)" onkeypress="if (event.keyCode == 13 ) {search();}"/>
当我在javascript中向$(document).ready添加以下内容时。。
if ( window.location.search.indexOf( "search" ) != -1){
$('#txtSearch').val( "<%= Session["SearchPhrase"] %>"v);
}
考虑到我在javascript 的其他地方有这个
function handleSearchFocus(searchBox) {
if ($(searchBox).val() == "<%= ServiceSite.Resources.Resources.SITEMATER_ENTER_SEARCH_TERM%>") {
$(searchBox).val("");
$(searchBox).css("color", "black");
}
}
function handleSearchBlur(searchBox) {
if ($(searchBox).val() == "" ) {
$(searchBox).css("color", "gray");
$(searchBox).val("<%= ServiceSite.Resources.Resources.SITEMATER_ENTER_SEARCH_TERM%>"); //should reference config file
}
}
这两个处理聚焦和模糊的功能不再起作用。当我点击输入框或点击离开时,不会运行。我想做的是,如果有一个搜索值应该显示,就显示它。如果没有,它遵循上面模糊/聚焦函数中的逻辑。
我试着把你的代码放在jsFiddle中,在开发者工具控制台中得到了以下错误:
未捕获引用错误:未定义handleSearchFocus
未捕获引用错误:未定义handleSearchBlur
请注意,我将jsFiddle设置为运行脚本onLoad
,这就是我假设您使用代码所做的。
通常,您会运行代码onLoad
,因为您需要所有元素来完成加载,以便操作和获取页面上的元素。在你的情况下,你需要相反的结果。您的元素是通过与您的函数绑定的onfocus
和onblur
事件创建的。然而,这些功能还不存在,因此无法启动。请注意,如果将jsFiddle onLoad
更改为no wrap (body)
,则函数可以工作。
换句话说,元素试图在函数可用之前找到它们。
您需要将函数放在主体中的<script>
标记中(在元素之后),或者将其附加到$(document).ready
代码中的事件中,如下所示:
$('#txtSearch').focus(function () {
// code here
});
$('#txtSearch').blur(handleSearchBlur);
MrOBrian在问题注释中发现了导致此问题的错误。
相关文章:
- OnFocus OnBlur with ASP.NET
- Onblur,Onfocus javascript for TextMode=“MultiLine” 不起作用
- OnFocus Onblur issue JavaScript 多个 instace of 同一字段
- javascript问题后的onblur和onfocus
- Javascript Simplification - Onclick, Onblur, Onfocus - Forms
- JavaScript onfocus/onblur 特定于输入 - 不起作用
- window.onblur 事件在使用 IE8 时也会触发 window.onfocus 事件
- JavaScript Onblur/OnFocus 函数不起作用
- 将 onfocus 和 onblur 函数替换或添加到 jQuery 函数中的文本框
- 在使用Javascript OnBlur OnFocus执行AJAX存储之前检查表单字段的更改?如何
- 如何在使用jQuery时为占位符设置onblur和onfocus字符串
- javascript onblur and onfocus events in iPad Safari
- onBlur and onFocus event
- onFocus .css and onblur .css
- 使用onfocus和onblur从asp文本框中删除默认文本
- onblur和onfocus帮助- Javascript函数的替代品
- onfocus / onblur progress
- Javascript onfocus / onblur issues
- 更改显示属性onfocus/onblur
- 未注册OnFocus/OnBlur事件