Javascript:在IE中尝试使用圆括号而不是方括号访问表单属性
Javascript: Trying to access form attributes with round brackets instead of square brackets works in IE
我希望我能正确地解释这个…
下面的网页包含一个带有onSubmit处理程序的表单。onSubmit处理程序是一个总是返回false
的函数,这意味着表单永远不应该被提交。但这只适用于IE8(可能也适用于其他版本的IE)。
要在Firefox和Chrome中工作,我必须将警报更改为:
alert(foo["firstName"].value);
我明白为什么使用方括号是正确的形式,因为形式是一个关联数组。
- 但是为什么在FF和Chrome中提交表单(因为
form("firstName")
显然是错误的)? - 是否有我可以捕获的错误?(我在Firebug中看不到任何明显的东西)
- 是否有办法确保仅在
true
返回时提交表单?
<html>
<head>
<script>
function alwaysReturnFalse() {
alert(foo("firstName").value);
return false;
}
</script>
</head>
<body>
<form name="foo" onSubmit="return alwaysReturnFalse();">
First name: <input name="firstName" type="text" value="Bob"/><br/>
Last name: <input name="lastName" type="text"/><br/>
<input type="submit" value="Submit"/>
</form>
This form has an onSubmit handler that always returns false - meaning the form should never submit.<br/>
It works in IE8 - e.g. the onSubmit handler executes an alert() and then returns false.<br/>
It fails in Firefox and Chrome - e.g. the form is submitted.
</body>
</html>
提交表单是因为其他浏览器抛出错误。错误导致函数提前退出。结果,代码没有达到返回false,所以表单提交。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- Dojo:访问dijit.form.Select中单击的项目
- 为什么在这个网站上不能通过JS访问元素
- 使用方括号访问插件原型函数
- 对象访问符号:方括号(Javascript)
- Javascript:在IE中尝试使用圆括号而不是方括号访问表单属性