我有两个用onblur
事件定义的文本框。在按下标签时,只要onblur
事件被调用field.validate
,就始终undefined
。
与此同时,当我尝试打印field.name
或field.getAttribute("validate")
时,它会返回正确的值。
<input width="100%" type="text" name="NV_active" id="NV_active" value="5" onblur="return doValidate(this);" validate=" return validateValueField(document.getElementById('NV_active'), 'Active' );">
<input width="100%" type="text" name="NV_throttled" id="NV_throttled" value="15" onblur="return doValidate(this);" validate=" return validateValueField(document.getElementById('NV_throttled'), 'Throttled' );">
function doValidate(field) {
console.log("field.validate- " + field.validate); //always printing undefined
console.log("getAttr- " + field.getAttribute("validate")); //return validateValueField(document.getElementById('NV_active'), 'Active' );
if (field.validate != null) {
var f = new Function(field.validate);
return f();
}
return true;
}
function validateValueField(field, displayName)
{
if ((field.name == 'NV_activePollingInterval') || (field.name == 'NV_throttledPollingInterval') )
{
//some validation code and error alert message
}
}
我无法弄清楚为什么它总是未定义。
答案 0 :(得分:0)
使用field.getAttribute('attr')
检索DOM元素属性的值。
使用field.attr
检索DOM元素的属性 attr
,它们并不总是相同的。
我建议你查看这个问题:getAttribute() versus Element object properties?和接受的答案,它应该对你有用。