我使用占位符属性在输入字段中显示一些信息。为了在 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的代码对我有帮助吗?因为据我所见,该代码包含一个更改占位符值的函数。