我在.submit中编写了一个自定义javascript / jQuery验证函数,并使用reportValidity函数()来获取那些工具提示气泡,但是在开发过程中了解到,它仅在Opera和Chrome中可以完全正常工作。显然,reportValidity()在IE,Safari和FF中无法以相同的方式工作。
在FF中,它将至少将用户带到不完整的问题,但不会像chrome和Opera那样提供自动工具提示来通知用户。
Safari和IE显然可以正确验证,但没有任何部分不完整的迹象。
解决此问题的方法是什么,即一种获得与Chrome或Opera类似的行为的方法?
最佳答案
这是我所做的:
document.forms[0].getElementsByTagName("input")[0].setCustomValidity("Please fill out at least one of these fields.");
try {
document.forms[0].reportValidity();
}
catch (e){ //for browsers that don't support reportValidity
$($('input')[0]).popover({
placement:'right',
trigger:'manual',
html:true,
content:'Please fill out at least one of these fields.'
});
$($('input')[0]).popover('show');
setTimeout(function () {
$($('input')[0]).popover('hide');
}, 4000);
}
finally{
return false;
}
您显然可以调整4秒超时以满足您的需求,或者完全替换为其他东西,但是带有try-catch和popover的解决方法部分对我来说似乎很好。