我已经搜索过并找到了多个答案,只是说明我的函数在一个点击处理程序中包装,虽然我希望它在页面加载时运行,或者一旦我的javascript完成插入所有的html。
我有一整页动态创建。我正在使用此代码片段修复IE的占位符。虽然没有使用实时创建的元素,但它确实有效。
$(document).ready(function(){
// Placeholder Fix for IE < 9
$("[placeholder]").each(function() {
var val = $(this).attr("placeholder");
if ( this.value === "" ) {
this.value = val;
}
$(this).focus(function() {
if ( this.value == val ) {
this.value = "";
}
}).blur(function() {
if ( $.trim(this.value) === "" ) {
this.value = val;
}
});
});
// Clear default placeholder values on form submit
$('form').submit(function() {
$(this).find("[placeholder]").each(function() {
if ( this.value == $(this).attr("placeholder") ) {
this.value = "";
}
});
});
});
我在js中添加表单元素,例如:
$('body').append('<input type="text" placeholder="placeholdertext" />');
有人可以建议如何解决这个问题吗?
香农
答案 0 :(得分:0)
这是你正在寻找的吗?
on()函数将处理程序应用于适合页面上选择器的所有元素,而不仅仅是特定元素(如.focus和.blur) 更多信息:http://api.jquery.com/on/
$(this).on("focus", function() {
if ( this.value == val ) {
this.value = "";
}
}).on("blur", (function() {
if ( $.trim(this.value) === "" ) {
this.value = val;
}
});
});