我正在处理IE中的以下jQuery问题。
对于我需要替换默认占位符字段的表单,这是由jquery完成的,占位符是隐藏的,并且它的值被添加到输入上的位置:绝对标签。
这一切都按照我的要求运作,但是,我面临的问题;当我填写表格时,将设置值(在会话中)。提交后我转到第二步。我可以通过点击链接返回第一个主页。
这是我刚刚填写表单元素或我做一个硬浏览器刷新的情况 像F5。
当我点击tempalte中的链接返回一个主题时,这就是结果
自定义占位符(作为红色标签)应该是隐藏的,但不会这样做,因为我应该这样做。我只在IE(?)
中遇到这个问题我正在使用的一些js代码;
$(function(e) {
//id itterator if the inputs don't have ids
if ($('input#firstname').val()) {
console.log( "ready!" );
$('.firstname-label').hide();
}
var phid=0;
$.fn.placeholder = function(){
return this.bind({
focus: function(){
$(this).parent().addClass('placeholder-focus');
},blur: function(){
$(this).parent().removeClass('placeholder-focus');
},'keyup input': function(){
$(this).parent().toggleClass('placeholder-changed', this.value!=='');
}
}).each(function(){
var $this = $(this);
//Adds an id to elements if absent
if(!this.id) this.id='ph_'+(phid++);
//Create input wrapper with label for placeholder. Also sets the for attribute to the id of the input if it exists.
$('<span class="placeholderWrap"><label class="'+this.id+'-label" for="'+this.id+'">'+$this.attr('placeholder')+'</label></span>')
.insertAfter($this)
.append($this);
//Disables default placeholder
//$this.attr('placeholder','').keyup();
});
};
console.log('set placeholders');
$('input').each(function() {
var input = $(this);
var id = $(this).attr('id');
if (!$(this).val() && $(this).attr('id') != 'photo') {
$('input#' + id).placeholder('');
console.log(id);
} else {
// do nothing
}
});
});
提前致谢!