我已经通过javascript编写了表单验证,它可以在除ie8之外的所有浏览器上使用。我在IE8中看到的错误说:对象不支持此属性或方法,并指向带有“ var firstnameObject”的行。页面加载后立即显示此错误。不仅限于此,还有更多代码,但是我不想用不必要的内容来填充这个问题。
有人对我为什么收到此错误有任何线索/建议吗?任何帮助表示赞赏,谢谢!
var generalMethods = {
//Validate Alpha
validateAlphaFields : function(field){
console.log(field)
var currentValue = $(v[field]).val();
console.log('current value:' + currentValue);
if (!currentValue || !currentValue.match(/^[A-z]+$/)){
$(v[field]).addClass('Invalid');
$('#s-'+ field).html(eval(field + 'Object.labelName'));
} else{
$(v[field]).removeClass('Invalid');
$('#s-'+ field).empty();
}
return generalMethods.testSubmit();
}
//Enable submit button if parameter === 'enable', else disable submit button
,disableEnable : function(condition){
if (condition === 'enable'){
//Enable submit button
$('#form_submit_button, #form-submit-button').removeAttr('disabled');
}
}
//Test all fields to enable Submit Button
,testSubmit : function(){
var invalidCount = 0;
$('#errorMessage span').each(function(){
if ($(this).text().trim().length){
invalidCount++;
}
});
//Disable submit if any invalid fields
if (invalidCount < 1){
generalMethods.disableEnable('enable');
$('#errorMessage').css('display','none');
return true;
} else{
$('#errorMessage').css('display','block');
return false;
}
}
}
//Validate Fields Objects
//=====================================================
var firstnameObject = {
labelName : $('#sfield_firstname label').text().trim()
,validate : generalMethods.validateAlphaFields
}
的trim
方法String
是在IE9中添加的,因此在IE8中不可用。使用$.trim()
而不是为跨浏览器兼容性:
var firstnameObject = {
labelName : $.trim($('#sfield_firstname label').text()),
,validate : generalMethods.validateAlphaFields
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句