最近使用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;
}
}
这一句上,请指点是什么原因?
按这段程序的写法,臆测下意思,你这里说的 “对象不支持此属性或方法”,应该是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。这就应该是程序本身的意思。
你好,请问你是怎么解决额? 我也老实这个问题。求解