【发布时间】:2011-10-14 21:47:30
【问题描述】:
我有一个 HTML 文档。
可以使用 javascript 获取与文档中特定 FORM 元素中的每个元素相关联的 事件。
var element = document.forms[i].elements[j];
这样我可以得到 i 形式的第 j 个元素,但是我可以得到与该元素关联的事件吗。
一个表单中可以有任意数量的元素。我使用的是 IE 8。
谢谢
编辑:
实际上我是在尝试将 HTML DOM 序列化为 XML。
我这样做是:
createXML : function() {
objSerializeDOM.msg += "";
objSerializeDOM.msg += "<?xml version='1.0' encoding='UTF-8'?>\n\n";
// Get all the forms in a document.
var forms = document.forms;
for ( var i = 0; i < forms.length; i++) {
// Get all the elements on per form basis.
elements = document.forms[i].elements;
objSerializeDOM.msg += "<FORM name=\"" + forms[i].name + "\" method=\""
+ forms[i].method + "\" action=\"" + forms[i].action + "\">\n\n";
for ( var j = 0; j < elements.length; j++) {
objSerializeDOM.msg += " <" + elements[j].tagName + " type=\""
+ elements[j].type + "\"" + " name=\""
+ elements[j].name + "\"" + " Value =\""
+ elements[j].value + "\" />\n";
}
alert(document.forms[i].elements[1].event);
}
objSerializeDOM.msg += "\n\n</FORM>\n\n";
alert(objSerializeDOM.msg);
objSerializeDOM.writeToFile(objSerializeDOM.msg);
}
我从中得到的是一个 XML:
<?xml version='1.0' encoding='UTF-8'?>
<FORM name="loginForm" method="post" action="/sigma/login.do;jsessionid=E6509E7BA55573AA5386274ABB93F718">
<INPUT type="hidden" name="message" Value ="" />
<INPUT type="hidden" name="userAction" Value ="" />
<INPUT type="text" name="userId" Value ="" />
<INPUT type="password" name="passwd" Value ="" />
<INPUT type="button" name="button" Value ="Continue" />
</FORM>
现在假设我有:
<input tabindex="7" name="button" type="button" class="button"
style="width:100;height:30" Value="Continue" onclick='login()' />
我现在要做的就是在我的 XML 中获取 onClick 或任何关联的事件,如 onBlur() 等。
谢谢
【问题讨论】:
-
这取决于事件是如何附加到元素上的。
-
你能更好地解释一下events是什么意思吗?您想将事件附加到元素,还是想知道可以绑定到哪些事件?
-
谢谢菲利克斯,但你能详细说明一下吗?我是这个领域的初学者。
-
假设您想要获取 事件处理程序,您只能将它们附加为 inline 作为 HTML 属性或属性。无论如何,我建议阅读these articles on quirksmode.org,它对 JavaScript 中的事件处理进行了非常全面的介绍(点击链接)。
标签: javascript dom javascript-events