我正在尝试引用提交按钮:
<input name="submit" type="submit" id="submit" tabindex="5" value="Submit" />
试过这个:
var submit_btn = $('submit');
以及document.getElementByID('submit')
。
但它始终评估为null
..
还尝试循环所有表单元素以lastChild
到达按钮,但结果是始终null
。这是一个已知的错误?
此外,当我尝试通过id引用表单元素时,结果也是null
..
答案 0 :(得分:2)
我敢打赌IE不喜欢元素“id”属性的值“submit”。请记住,IE希望在“窗口”对象上使用“id”值作为属性名称,并且可能会将“submit”视为保留字。我知道你说你不能改变价值。如果您使用的是jQuery,请尝试$('input[name=submit]')
答案 1 :(得分:0)
submit
的元素吗?答案 2 :(得分:0)
尝试:
$("input#submit");
或:
$("input[type='submit']");
此外,如果提供ID,例如“提交”,这被认为是不好的做法 - 更具描述性:<input id="SubmitRegistration">
请记住使用#selector引用ID - 您在上面的陈述中没有。
另外,请记住将jQuery放在$(document).ready(function() {});
内,以确保它在dom加载后运行。
答案 3 :(得分:0)
我假设美元函数是Prototype库?如果没有,在JQuery中,调用应该是$('#submit')
。
或者,您是否正在<script>
代码中直接尝试?您可能必须将代码包装在onLoad回调中。如果不这样做,您的浏览器可能会在页面完全加载之前执行脚本,并且您的元素仍可能从DOM中丢失。例子:
原型:
Event.observe(window, 'load', function() {
// your code
});
对于JQuery:
$(document).ready(function() {
// your code
});
答案 4 :(得分:0)
刚遇到类似的IE8问题。当通过JS访问时,大多数输入元素在表单内是null。这是标记:
<p>
<form styleId="districtReportForm" method="post" onsubmit="return false;">
<input name="reportType" value="0" type="hidden">
<input name="districtId" value="30001176" type="hidden">
除IE8外,其他一切都很好。在IE8中,在'reportType'之后,表单中没有元素。例如,在按ID获取表单后,form.districtId
为空。
所以我跑了:
dojo.byId('districtReportForm').innerHTML
要了解IE的想法,并报告:
"<INPUT name=reportType value=0 type=hidden> </P>"
显然,IE已决定为我关闭开幕<p>
(诚然,它没有正确关闭)。删除段落元素修复此问题。