簡體   English   中英

我可以只覆蓋一些輸入元素的jQuery .val()嗎?

[英]Can I override jQuery .val() for only some input elements?

假設我使用的是一個“占位符”jQuery插件,它從輸入元素中讀取“占位符”屬性,並為尚未支持占位符的瀏覽器模擬它。

但我仍然希望$(“input”)。val()正常工作 - 也就是說,如果文本框中的文本是占位符文本,則返回“”。 無論如何我可以覆蓋.val()只是為了這些輸入?

嘗試這個:

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;
};

並簡單地使用$(“#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 {
            return ele.rVal();
        }
    }
    return undefined;
};

您可以全局覆蓋val()方法,然后檢查它是否是正常輸入。

你可以使用水印插件嗎?

http://code.google.com/p/jquery-watermark/

它非常容易使用,只需調用$("input").watermark("Placeholder text")它就會按照你描述的方式運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM