首页 新闻 会员 周边 捐助

asp.net Anthem控件不可用,点击事件按钮报错误: 对象不支持此属性或方法

0
悬赏园豆:10 [已关闭问题]

最近使用anthem控件,点击事件按钮的时候经常报错误: 对象不支持此属性或方法,用IE调试就跳到

function Anthem_SetHiddenInputValue(form, name, value) {
    var input = null;
    if (form[name]) {
        input = form[name];
    } else {
        input = document.createElement("input");
        input.setAttribute("name", name);
        input.setAttribute("type", "hidden");
    }
    input.setAttribute("value", value);
    var parentElement = input.parentElement ? input.parentElement : input.parentNode;
    if (parentElement == null) {
        form.appendChild(input);
        form[name] = input;
    }
}

这一句上,请指点是什么原因?

hebeiping的主页 hebeiping | 初学一级 | 园豆:110
提问于:2010-03-21 22:38
< >
分享
其他回答(1)
1

按这段程序的写法,臆测下意思,你这里说的 “对象不支持此属性或方法”,应该是form可能是null或者不是程序中需要提供的那种对象类型。

从程序的写法来看,

 if (form[name]) {
        input = form[name];
    } else {
        input = document.createElement("input");
        input.setAttribute("name", name);
        input.setAttribute("type", "hidden");
    }

首先程序会判断form[name]是否存在,如果存在就会把form[name]赋值给input这个变量,不存在的时候程序创建一个input标签。input.setAttribute("value", value);设置input这个标签的value属性。var parentElement = input.parentElement ? input.parentElement : input.parentNode;这句话其实就是 获取对象(文档)层次中的父对象(parentElement是IE独有的,parentNode是w3c标准),if (parentElement == null) 这里判断这个父对象是否存在,如果存在那么就在form对象上添加一个子节点input,并设置form[name]=input。这就应该是程序本身的意思。

西越泽 | 园豆:10775 (专家六级) | 2010-03-22 10:08
我把文档标签去掉<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 就运行正常,这种情况又该如何解决?
支持(1) 反对(0) hebeiping | 园豆:110 (初学一级) | 2010-03-22 15:24
@hebeiping:代码兼容性问题,把代码改得通用性好些就成
支持(0) 反对(0) 西越泽 | 园豆:10775 (专家六级) | 2010-03-24 10:30
0

你好,请问你是怎么解决额? 我也老实这个问题。求解

骑士Cat | 园豆:202 (菜鸟二级) | 2013-12-31 10:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册