javascript中FORM表单的submit()方法经验教训
@author songfeng
因为JS内对象的方法实际上是存储语句的一个类似于指针的东西. 其指向了内存的一个位置, 也就是其函数的位置,当然也可以让其指向一个变量值.
var foo = new Object();
foo.bar = function() {} //现在foo.bar就是指向了这个函数的内存位置.
foo.bar = "abcdefg"; //现在其指向了内存中的字符串
也就是说它们的名子是一样的, 第二个会把第一个覆盖掉, 并不会有任何提示.
下面是我今天遇到的问题.
<form action="" name="applyForm" namemethod="post">
<input type="text" name="foo" value="" />
<input type="button" id="submit" onClick="apply();" name="submit"
/> //注意它的name
</form>
<script>
function apply()
{
document.applyForm.submit()
;
}
</script>
apply()就是无法提交, 总是告诉我submit()不是方法, 可是明明其就是一个方法.
后来仔细检查(因为源代码比这长很多), 才找出问题所在. 原来是input表单的name值是submit, 它理所当然的成了此FORM
的属性值.自然就把以前的顶替了. 改后, 则正常运行.
相关文档:
理解Javascript闭包(closure)
专题 原帖 http://www.w3cgroup.com/article.asp?id=87
此文用通俗的文字介绍了Javascript闭包 。
看过后,我对javascript闭包简单的理解就是 文中第四、五段中所说的“在内存中维持一个变量,不会被GC回收”。
当然还需要学习才能深入的理解javascript闭包
一、什么是闭包?
......
兼容IE、FireFox、Chrome
//加载js
function loadJs(){
if (!getObj('script_PlData')){
var scriptObj= document.createElement("script");
//scriptObj.id = 'script_1';
&nb ......
在JavaScript中没有多维数组的概念
但是可以模拟实现
1维
//1 不能确定数组length的情况下,先声明一个数组名,然后再逐个赋值。
var tArray=new Array();
tArray[0]='A';
tArray[1]='2';
//2 知道确切的length,创建数组
var tArray=new Array(10);
//3 创建数组的同时并赋值
var tArray=new Array('A','2','3', ......
当页面加载以后,执行JavaScript,按秒开始计数:
JavaScript function:
<SCRIPT language="JavaScript">
<!--Timer in JavaScript
var timerform
speed=1000
function dotimer()
{
today=new Date()
slutsec=today.getSeconds()
slutmin=today.getMinutes()
sluttim=today.getHours()
sluta=(slutse ......