使用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