0

我使用占位符属性在输入字段中显示一些信息。为了在 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" />

伪代码:

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的代码对我有帮助吗?因为据我所见,该代码包含一个更改占位符值的函数。

4

1 回答 1

0

Problem solved, stupid mistake, in IE developer tools I didn't look at the console. There I saw that a variable wasn't correctly defined... epic facepalm.

To be more precise: My extension function for jQuery to change the placeholder text had a line:

$(this).addClass(placeHolderStylingClass);

But the variable placeHolderStylingClass was not set in the function, this was a stupid copy/paste mistake from my setPlaceholder function.

于 2013-06-04T07:30:29.557 回答