使用jquery更改占位符文本也是自动的

我使用placeholder属性在输入字段中显示一些信息。 为了在IE中支持这个我使用jquery。 该代码在IE中工作。 但是,根据用户在下拉列表中选择的内容,某些输入字段中占位符的值也需要更改,这是问题所在。

调整占位符属性中的值不会自动更改输入字段的值。

我使用的代码是确定输入字段的值是:

if(!$.support.placeholder) { 
    var active = document.activeElement;
    $('input[type=text], textarea').focus(function () {
        if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
            $(this).val('').removeClass('hasPlaceholder');
        }
    }).blur(function () {
        if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
            $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
        }
    });

当我想在一个名为SetPlaceholderText的函数中改变属性文本时:

$("#affected-input-field").attr("placeholder", "New placeholder text");

但是这并不能解决我的问题。

基本上我想要做的是:

<input id="affected-input-field" value="Old placeholder text" placeholder="Old placeholder text" />

PSEUDO CODE:

if($('#dropdown').val() == '1') {
    $(#affected-input-field).SetPLaceholderText("New Placeholder text...");
}

从代码运行的那一刻起,在输入字段中可见的文本就是新值:

<input id="affected-input-field" value="New placeholder text" placeholder="New placeholder text" />

但只有在输入字段为空并且尚未填充的情况下。

我想知道,https://github.com/mathiasbynens/jquery-placeholder的代码能帮助我吗? 因为从我所看到的,该代码包含一个函数来更改占位符的值。


问题解决了,愚蠢的错误,在IE开发人员工具中我没有看到控制台。 在那里,我看到一个变量没有正确定义......史诗般的facepalm。

更确切地说:我用于jQuery的扩展函数来改变占位符文本有一行:

$(this).addClass(placeHolderStylingClass);

但是函数中没有设置变量placeHolderStylingClass,这是我的setPlaceholder函数中的一个愚蠢的复制/粘贴错误。

链接地址: http://www.djcxy.com/p/70571.html

上一篇: Change placeholder text with jquery also auto

下一篇: PlaceHolder is not working properly in Mobile Devices