2012-06-12 76 views
1

有一个唯一的ID表单提交在Chrome中无法正常工作,即

<form id='fu_edit_1' method='post' action=''> 
.... 
</form> 

<form id='fu_edit_2' method='post' action=''> 
.... 
</form> 

使用多种形式这个js代码

var formName = 'fu_edit_'+id; 
document.forms[formName].submit(); 

所以这里的代码工作正常在FF的最后版本,但在铬和即拒绝工作。但是,如果直接指定表单的ID,则可以使用,例如:

document.forms["fu_edit_2"].submit(); 

问题出在哪里?


在控制台中,铬写道:遗漏的类型错误:对象#有没有方法“提交”

+2

可以肯定的是:你是否肯定'id'在你构造'formName'变量时有一个值? –

+0

“id”变量来自哪里?它是如何填充的?你是否调试过这段代码来检查'formName'是否正确填充?看起来好像你将表单前缀字符串与'NaN'或其他表单字符串连接在一起 – MilkyWayJoe

+0

我检查了id的存在。并在ff中选择所需的表单。 – tranceman

回答

0

我觉得你的问题是与变量id我会建议你到这一点:

alert(id.toString()); 

也许有一个问题,你的号码收敛到字符串,也许警报会让你感到惊讶,如01或类似

+0

不,一切都应该如此,没有01和其他 – tranceman

+0

一个问题,为什么你在显式文本中使用双引号,但在字符串中使用单引号?,对不起,它可能听起来像是软木塞,但我看到过很多奇怪的东西最近.. –

+0

它发生在实验过程中 – tranceman

0

我碰到过这个问题多次,最后发现如果你有一个表单元素的fu_edit_2形式的名称属性为submit,那么document.forms [“fu_edit_2”]。submit将是一个对元素的引用而不是提交表单的方法。我发现最好远离具有提交名称的任何表单域来避开这个问题。

相关问题