浅解js中的defaultValue

在我们实现当鼠标移动到该处是文本框初始值置为空,当鼠标离开时,如果没有在该文本框输入信息时,文本框恢复到初始值时需求时。可以用下面的一行代码实现:

 js代码:
   $(".account").focus(function(){
        $(this).val("");
    });
    $(".account").blur(function(){
        $val=$(this).val();
        if($val){
            $(this).val($val);
        }else{
            $(this).val(this.defaultValue);    
        }
    });  
jsp代码:
 <input class="account" type="text" name="phone" value="手机号/用户名">

在这段简短的代码中我们看到了defaultValue这个属性,从实现的功能我们知道是获取文本框的默认值,而这个仅仅是defaultValue的功能,如果要信手拈来就用它,我们还需要对它的基本属性有更深的理解。
现在如果有一个新的需求要求但我点击提交表单的时候,去检查文本框的值是否为初始值,如果为初始值,则将初始值值为空。
要实现这个功能是需要运用js的吧,但我们点击提交按钮时,响应其click(function(){xxxx})事件。并且在click()函数中必须有获取其初始值的代码片段,再用于比较,也许你会用下面这段代码来获取文本框的默认值。

var $defaultValue=$(".account").defaultValue;
alert($defaultValue);   

但是很遗憾弹出来的对话框为undefined,为什么?也许你万方不解,一开始我也是一脸蒙蔽的。而我上网查资料发现网上关于defaultValue资料少之有少,大多都是关于我第一个需求。为什么用this.defaultValue就可而用,$(“.account”).defaultValue就不可以?
这是我想起了defaultValue属性所属框架,因为我们知道的dom的属性和jquery的属性是不可以互用的 所以我用document.getElementByClass(“account”).defaultValue获取发现得到的值就是默认值,这是才发现原来defaultValue属性是dom对象的,因此我们在jquery中需要把jquery对象转化为dom对象再去获取defaultValue就可以了,所以要完成第二个需求需要用下面的代码获取默认值:

  var $defaultValue=$(".account").get(0).defaultValue;
  alert($defaultValue);   
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页