HTML 输入元素 (field.validate) 始终未定义

Posted

技术标签:

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

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

同时,当我尝试打印 field.namefield.getAttribute("validate") 时,它确实返回了正确的值。

<input  type="text" name="NV_active" id="NV_active" value="5"  onblur="return doValidate(this);" validate=" return validateValueField(document.getElementById('NV_active'), 'Active' );">

<input  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
    

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于HTML 输入元素 (field.validate) 始终未定义的主要内容,如果未能解决你的问题,请参考以下文章

HTML中常用的表单元素

html 转换HTML输入元素的东西。

Javascript 进程冻结 HTML 输入元素

无法使用 Robot Framework 将文本输入到 HTML 输入元素中

HTML 输入元素可以有多种类型吗?

删除类型=日期的 html5 输入元素中存在的默认文本/占位符