我遇到FireFox 3.6的问题,不喜欢在jQuery(v1.7.2)中调用非jQuery函数。
减少我的代码版本:
function doInitialiseForm( theField ) {
/* loop through a few fields and set the appropriate attributes & class */
nX = parseInt( theField ) ;
var inputElement = '' ;
for ( i=(nX + 1); i <= 10 ; i++ )
{
$('#acBox' + i).addClass('pHide') ;
/* toggle the required attribute/class on the input boxes - for HTML5 input validation to behave correctly ... */
inputElement = document.getElementById('acBoxName_' + i ) ;
inputElement.removeAttribute('required');
$( inputElement ).removeClass( 'required' )
}
}
$(document).ready(function() {
if ( isBookingPage == '1' )
{
doInitialiseForm( document.getElementById('AttendingCount') ) ;
}
});
FireFox报告错误:
Error: uncaught exception: [Exception... "Not enough arguments" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http//development_server/Booking/js/script.js :: doInitialiseForm:: line 65" data: no]
这似乎与FF期望removeEventListener()
的第三个参数有关,这是可选的。但是,我不是直接使用removeEventListener()
。
为了让上述代码在旧版本的FireFox中运行,我需要实现哪些其他代码?
答案 0 :(得分:0)
问题现已解决。
函数doInitialiseForm()的部分省略代码是调用setAttribute()而我没有包含第二个参数。
即。最初写成
inputElement.setAttribute('required');
什么时候应该
inputElement.setAttribute('required','');