0

长话短说,除了是一个菜鸟,我不知道为什么这不起作用。总的来说,我有不同的功能来检查不同的东西。

为了这个例子,我有一个表单(一个要测试的字段),默认值为say..“在此处输入名称”。所以下面的html

<input type="text" value="enter name here" id="fieldOne"/>

下面是js。

// sample vars

var fieldOne = $('#fieldOne');

//下面的这个函数将在模糊时触发。

function checkVal(){
    if($(this).val()== $(this).attr('defaultValue')){
        $(this).css("background-color","red");
        $(this).css("color","white");   
    } else if($(this).val()==""){
        $(this).css("background-color","red");
        $(this).css("color","white");   
        $(this).val("oopsiiee, you forgot this one");

    } else {
        $(this).css("background-color","green");
        $(this).css("color","white");   
    }

}

然后在表单字段上,在模糊上我这样做

fieldOne.blur(checkVal);ETC...

以上工作,

现在因为它有一个默认值,所以我想要它,以便当用户单击所述字段时,该默认值消失。

所以我做这样的事情:

function clearField(){
  $(this).val("");
}

这行得通

fieldOne.click(clearField);ETC...

现在的问题是,即使数据已从 def 更改为任何内容,输入的 mssg 也会再次消失 SOOooo,我想编辑这个简单的功能,以便如果 mssg 是默认值,请清除它。如果 mssg 不是默认值,则意味着它已更改,因此请保留它。所以我写这个打破了整个事情。

function clearField(){
    if($(this).val() == $(this).attr('defaultValue')){
        $(this).val() == "";
    }
}

不知道发生了什么。

我也试过

function clearField(){
    if($(this).val() == $(this).attr('defaultValue')){
        $(this).attr('defaultValue') == "";
    }
}

我虚心接受/欣赏任何提示、想法、更正等

先谢谢了。

4

1 回答 1

1

这是你想要完成的事情吗?

$inputs = $('input[type=text], input[type=password]');

$inputs.focus(function() {
    if(this.value==this.defaultValue)
    {
        this.value='';
    }
}).blur(function() {
    if($.trim(this.value)=='')
    {
        this.value=this.defaultValue;
    }    
});

这个例子的小提琴:http: //jsfiddle.net/yajxr/2/

于 2012-05-16T14:13:42.150 回答