【问题标题】:HTML Input element (field.validate) is always undefinedHTML 输入元素 (field.validate) 始终未定义
【发布时间】:2016-01-27 03:12:57
【问题描述】:

我有两个用onblur 事件定义的文本框。在按下 Tab 时,每当 onblur 事件被调用时,field.validate 总是 undefined

同时,当我尝试打印 field.namefield.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
    }
}

我无法弄清楚为什么它总是未定义。

【问题讨论】:

    标签: javascript html forms dom


    【解决方案1】:

    使用field.getAttribute('attr') 检索DOM 元素属性的

    使用field.attr 检索DOM 元素的属性 attr,它们并不总是相同的东西。

    我建议您检查这个 SO 问题:getAttribute() versus Element object properties? 和接受的答案,它应该对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多