我有一个表单,其中包含大量inputs
。这些输入的初始类为inputLight
,使用浅灰色文本。我有以下jQuery代码,在focus
上将文本颜色更改为inputDark
,并在blur
上将其更改回来:
$('input').focus(function(){
$(this).attr('class', 'inputDark');})
.blur(function() {$(this).attr('class', 'inputLight');
这绝对有效。我还有以下代码,以便在首次选择时删除input
的值。
/* First time only, delete default text*/
$('input').one('focus', function(){
$(this).val('');});
也有效。我要去哪里?好吧,我有两个input
按钮,一个用于提交表单,另一个用于清除它 - 但我的问题不在于验证。
当用户点击任一按钮时,它当然会删除它的值。并改变文本的颜色。
我不希望这些按钮发生任何事件,这些按钮名为Submit Button
和Clear Button
。
我尝试使用:
/* Toggle gray/black text */
$('input').not('input[name=Submit Button]').not('input[name=Clear Button]').focus(function() {$(this).attr('class', 'inputDark');}).blur(function() {$(this).attr('class', 'inputLight'); });
和
/* First time only, delete default text*/
$('input').not('input[name=Submit Button]').not('input[name=Clear Button]').one('focus', function(){
$(this).val('');
});
对不起那里的坏标记,我知道它看起来一定很糟糕。
使用.not()
函数,这两个函数都不起作用,但按钮有效。取出.not()
并且效果有效,但按钮会变得混乱。
有人可以帮我吗?
答案 0 :(得分:2)
不会$('input:text')
提高效率吗?
$('input:text').focus(function(){
$(this).attr('class', 'inputDark');})
.blur(function() {$(this).attr('class', 'inputLight');
/* First time only, delete default text*/
$('input:text').one('focus', function(){
$(this).val('');});