为什么在IE中为textarea和输入(非文本)刷新页面刷新的'input'事件

时间:2014-06-20 14:34:23

标签: jquery internet-explorer

有人可以建议为什么输入'在刷新表单时触发事件。

它不会在普通文本输入上执行,但它适用于textarea和输入[type = number]

基本上我有一个带有必需的textarea,并且由于IE11没有正确应用伪类,我必须绑定事件来调用验证代码并手动应用有效/无效的类。

$('[required]').on('input',function(){ checkValid(this);}); 

function checkValid(ele)
{

if(ele.validity.valid)
{   
    $(ele).removeClass('invalid'); 
    $(ele).addClass('valid'); 
}
else
{ 
    $(ele).removeClass('valid'); 
    $(ele).addClass('invalid');        
}

}

如果我刷新页面,checkValid对textarea运行并输入[type = number],但不是正常输入?

我已经将此跟踪到了输入'加载页面时触发事件,但仅在刷新后触发,而不是在初始页面加载时触发。

为什么会这样,我该怎么做呢?

谢谢, 1DMF

编辑评论

$(document).ready(function() {

// hide select list placeholders
$('select option:first').css('display','none');

// handle required fields as IE pseudo classes don't work properly   
$('select[required]').on('click',function(){ checkValid(this);});   
$('[required]').on('input',function(){ checkValid(this);});              
$('[required]').on('invalid',function(){ $(this).addClass('invalid'); });

// add JQuery UI tooltips
$('body').tooltip();

// now deal with FF and the fact refresh doesn't blank form fields!
$('[required]').each(function(){   
    if($(this).val() != '')
    {        
        checkValid(this);
    }            
});

});

0 个答案:

没有答案