本文介绍了我可以只覆盖一些输入元素的jQuery .val()吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我使用的是一个占位符jQuery插件,它从输入元素中读取占位符属性,并为尚未支持占位符的浏览器模拟它。



<但是我仍然希望$(input)。val()正常工作 - 也就是说,如果文本框中的文本是占位符文本,则返回。无论如何我只能为这些输入覆盖.val()?

解决方案

试试这个:

  jQuery.fn.rVal = function(){
if(this [0]){
var ele = $(this [this 0]);
if(ele.attr('placeholder')!=''&& ele.val()== ele.attr('placeholder')){
return'';
} else {
返回ele.val();
}
}
返回undefined;
};

并简单地使用$(#ele_id)。rVal()来检索值。
或者如果你想替换val函数(并正常使用它):

  jQuery.fn.rVal = jQuery.fn.val; 
jQuery.fn.val = function(value){
if(value!= undefined){
return this.rVal(value);
}
if(this [0]){
var ele = $(this [0]);
if(ele.attr('placeholder')!=''&& ele.rVal()== ele.attr('placeholder')){
return'';
} else {
返回ele.rVal();
}
}
返回undefined;
};


Suppose I'm using a "placeholder" jQuery plugin that reads the "placeholder" attribute from input elements and simulates it for browsers that don't yet support placeholders.

But I would still like $("input").val() to work properly -- that is, to return "" if the text in the textbox is the placeholder text. Is there anyway I can override .val() just for these inputs?

解决方案

try this:

jQuery.fn.rVal=function() {
    if(this[0]) {
        var ele=$(this[0]);
        if(ele.attr('placeholder')!=''&&ele.val()==ele.attr('placeholder')) {
            return '';
        } else {
            return ele.val();
        }
    }
    return undefined;
};

and simply use $("#ele_id").rVal() to retrieve values.Or if you want to replace the val function (and use it as normal):

jQuery.fn.rVal=jQuery.fn.val;
jQuery.fn.val=function(value) {
    if(value!=undefined) {
        return this.rVal(value);
    }
    if(this[0]) {
        var ele=$(this[0]);
        if(ele.attr('placeholder')!=''&&ele.rVal()==ele.attr('placeholder')) {
            return '';
        } else {
            return ele.rVal();
        }
    }
    return undefined;
};

这篇关于我可以只覆盖一些输入元素的jQuery .val()吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-22 12:56