jQuery操作input改变value属性值

本文介绍了一种通过jQuery实现的表单输入框优化方案。该方案使得输入框在用户点击时清空默认提示文本,并在失去焦点且为空时恢复提示。文章详细展示了不同实现方式及其改进过程。

今天写了一个表单元素,在用户点击的时候会清空input中的内容,当鼠标点击其他地方的时候会把输入的值保存为input的value值

类似于这样的效果

当用户点击的时候文字消失。

html代码

 

[html] view plain copy

print?

  1. <input type="text" name="" value="请输入您的邮箱地址"/>  
  2. <input type="text" name="" value="请输入用户名"/>  
  3. <input class="pwd" type="text" name="" value="请输入密码"/>  
  4. <input class="pwd" type="text" name="" value="确认密码"/>  

jq代码

[html] view plain copy

print?

  1. <script type="text/javascript">  
  2.     $(document).ready(function(e) {  
  3.         var temp;  
  4.         $(":text").focusin(function(){  
  5.             var value = $(this).val();  
  6.             if ($(this).val() == "请输入密码" || $(this).val() == "请输入您的邮箱地址" || $(this).val() == "确认密码" || $(this).val() =="请输入用户名") {                
  7.                 if($(this).val() == "确认密码" || $(this).val() == "请输入密码") {  
  8.                     $(this).attr('type','password')  
  9.                 }  
  10.                 $(this).val("")  
  11.             }  
  12.             //alert(value)  
  13.         })  
  14.         $(":input").focusout(function(event) {  
  15.             /* Act on the event */  
  16.             if($(this).val() == "") {                
  17.                 if ($(this).hasClass('pwd')) {  
  18.                     $(this).attr('type','text')  
  19.                 };  
  20.                 $(this).val(temp)  
  21.             }  
  22.         });  
  23.     })  
  24.   
  25. </script>  

 

这样之后基本所要求的功能可以实现,但是发现代码不够优雅,于是又想到了可以使用数组来保存value值,

 

[javascript] view plain copy

print?

  1. var arr_ = [];  
  2.         var temp;  
  3.         $(":text").each(function() {  
  4.             arr_.push($(this).val())  
  5.         })  
  6.         $(":text").focusin(function(){  
  7.             var that = this;  
  8.             var value = $(that).val();  
  9.             temp = value;  
  10.             $.each(arr_,function(i,n) {  
  11.                 if(value==n){  
  12.                     $(that).val("");  
  13.                     if(value=="请输入密码"||value=="确认密码"){  
  14.                         $(that).attr("type","password");  
  15.                     }  
  16.                 }  
  17.             });  
  18.         })  


又发现了一个问题, 总是需要一个全局变量temp来保存value值,这对于javascript来说是不好的,于是乎又想到了data属性

 

 

[html] view plain copy

print?

  1. <input type="text" name="" data="请输入您的邮箱地址" value="请输入您的邮箱地址"/>  
  2.             <input type="text" name="" data="请输入用户名" value="请输入用户名"/>  
  3.             <input class="pwd" type="text" data="请输入密码" name="" value="请输入密码"/>  
  4.             <input class="pwd" type="text" data="确认密码" name="" value="确认密码"/>  

 

[javascript] view plain copy

print?

  1. $(document).ready(function(e) {  
  2.         var arr_ = [];  
  3.         $(":text").each(function() {  
  4.             arr_.push($(this).val())  
  5.         })  
  6.         $(":text").focusin(function(){  
  7.             var that = this;  
  8.             var value = $(that).val();  
  9.             $.each(arr_,function(i,n) {  
  10.                 if(value==n){  
  11.                     $(that).val("");  
  12.                     if(value=="请输入密码"||value=="确认密码"){  
  13.                         $(that).attr("type","password");  
  14.                     }  
  15.                 }  
  16.             });  
  17.         })  
  18.         $(":input").focusout(function(event) {  
  19.             /* Act on the event */  
  20.             if($(this).val() == "") {                
  21.                 if ($(this).hasClass('pwd')) {  
  22.                     $(this).attr('type','text')  
  23.                 };  
  24.                 $(this).val($(this).attr("data"));  
  25.             }  
  26.         });  
  27.     })  


这样便看起来舒服多了。

转载于:https://my.oschina.net/u/1266171/blog/849277

### 回答1: 可以使用jQuery的val()方法来获取input元素的value值,例如: ``` var inputValue = $('input').val(); ``` 其中,$('input')表示选取所有的input元素,val()方法则用于获取其value值。如果只想获取特定的input元素的value值,可以在选择器中指定其ID或class等属性,例如: ``` var inputValue = $('#myInput').val(); // 获取ID为myInputinput元素的value值 var inputValue = $('.myInputClass').val(); // 获取class为myInputClass的input元素的value值 ``` ### 回答2: JQuery是一个功能强大的JavaScript库,用于编写动态Web页面。在页面中,我们经常需要从表单中获取用户输入的值,然后做一些处理。这个过程中,JQuery获取input值是非常常用的操作。 获取单个inputvalue值 我们可以使用JQuery中的val()函数获取输入框的值。val()函数通常用于获取input元素的值,也可用于设置input元素的值。下面是获取单个inputvalue值的代码: ``` var inputVal = $('input[name="inputName"]').val(); ``` 这样,我们就可以通过获取到的inputVal值来进行后续处理。 获取多个inputvalue值 如果页面中有多个input元素,我们可以通过遍历这些元素来获取它们的value值,然后做一些处理。下面是获取多个inputvalue值的代码: ``` $('input').each(function(){ var inputVal = $(this).val(); // 在这里进行后续操作 }) ``` 这里的each()函数用于遍历页面中的所有input元素,并对每个元素执行一些操作。其中,$(this)表示当前遍历到的input元素。 总结 通过使用JQuery的val()函数,我们可以方便获取input元素的值,实现对用户输入的信息进行处理。当然,如果你只是想要获取元素的文本信息,可以使用text()函数来代替val()函数,两者的用法类似。无论是获取单个input还是多个input的值,都可以通过使用JQuery来实现。 ### 回答3: 在使用jQuery获取inputvalue值之前,首先需要了解一个基本的概念:jQuery选择器。jQuery选择器是用来选择某个或某些元素的方法。可以通过ID、类、标签名等方式选择元素。接下来讲述如何使用jQuery选择器获取inputvalue值。 一、根据ID选择器获取value值 当input元素有ID属性时,可以使用ID选择器获取该元素的value值。代码如下: ``` var value = $("#inputId").val(); ``` 其中“#inputId”表示选择ID为“inputId”的元素,val()是获取元素value值的方法。将上述代码放在需要获取value值的地方即可。 二、根据class选择器获取value值 当有多个input元素使用同一个class时,可以使用class选择器获取value值。代码如下: ``` var value = $(".inputClass").val(); ``` 其中“.inputClass”表示选择class为“inputClass”的元素,val()是获取元素value值的方法。注意:如果有多个使用了同一个class的input元素,则只能获取第一个元素的value值。 三、根据标签名选择器获取value值 当有多个input元素使用同一个标签名时,可以使用标签名选择器获取value值。代码如下: ``` var value = $("input").val(); ``` 其中“input”表示选择所有input元素,val()是获取元素value值的方法。注意:如果有多个input元素,则只能获取第一个元素的value值。 使用上述三种方法可以方便地获取input元素的value值,达到预期的效果。同时,我们也要注意使用选择器时的精度,以免误选其他元素造成不必要的麻烦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值