js / jq表单验证问题/帮助(jquery)

时间:2012-05-16 13:49:43

标签: javascript jquery

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

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

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

以下。

// 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);等......

以上作品,

现在因为它有一个默认值,所以我想要它,这样当用户点击所述字段时,该def值就会消失。

所以我做这样的事情:

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

这是有效的

fieldOne.click(clearField);等......

现在的问题是,即使数据已经从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') == "";
    }
}

任何提示,想法,更正等我谦卑地接受/欣赏

先谢谢。

1 个答案:

答案 0 :(得分: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/