这个jQuery不起作用。我知道这看起来很奇怪。但我怎样才能让它发挥作用?
JavaScript部分中的CSS修改无法正常运行。在.blur上,如果字段中没有任何内容,jQuery应该更改文本框的颜色。
在blur
上如果字段中没有任何内容,则文本应该更改,文本颜色应该更改。在focus
上,如果字段中有“正在搜索”,则文本应该更改,文本颜色应该更改。
我是否必须删除内联JavaScript?
答案 0 :(得分:2)
试试这个,看看它是否解决了问题:
$("#additionalsearch").focus(function(){
if (this.value == "Search Within")
{
this.value = "";
$(this).css('color','#000000');
}
});
$("#additionalsearch").blur(function(){
if (this.value == "")
{
this.value = "Search Within";
$(this).css('color','#a9a9a9');
}
});
答案 1 :(得分:2)
您必须删除内联代码,因为它在事件处理程序之前运行
您应该仅保留HTML以进行持久化,<script>
标记内和.JS文件中的所有逻辑和JavaScript都更好。
<强> JQuery的强>
$(document).ready(function() {
$('input#additionalsearch').focus(function() {
if (this.value === 'Search Within') {
$(this).css('color', '#000000').val('');
}
});
$('input#additionalsearch').blur(function() {
if (this.value === '') {
$(this).css('color', 'red').val('Search Within');
}
});
});
<强> HTML 强>
<input id="additionalsearch" type="text" value="Search Within" />
答案 2 :(得分:0)
通过Firebug运行代码,看看css属性/属性是什么。内联应覆盖javascript属性设置/ css样式属性,除非您使用重要!属性。
答案 3 :(得分:0)
我最好的猜测是内联函数首先运行,因此当该字段为空并且您单击时,它将设置为具有内联函数的内容。所以无论如何,当调用jquery onblur时,字段总是包含文本(因为即使它没有并且onblur被调用,内联函数在jquery运行之前添加文本)。
你能详细说明你想要发生什么吗?也许我可以帮忙。