2010-03-28 44 views
1

您好我有以下脚本在我的形式的Javascript提交

function pdf() { 
var frm = document.getElementById("form1"); 
frm.action = "http://www.abbysoft.co.uk/index.php"; 
frm.target="_blank" 
frm.submit() 
} 

这就是所谓的从我的形式下 <input class="buttn" type="button" value="Test" onclick="pdf()"

的代码工作到frm.submit(),但它会不提交

任何人都可以提供任何建议吗?

+1

编程相关的问题都属于stackoverflow.com顺便说一句,我觉得你要ID = Form1中添加到您的输入级。 – 2010-03-28 13:00:46

+1

我们可以看到一些HTML吗?具体来说,形式? – 2010-03-28 13:09:19

回答

2

您应该以;结束您的对帐单。以下应工作

function pdf() 
{ 
    var frm = document.getElementById('form1'); 
    frm.action = 'http://www.abbysoft.co.uk/index.php'; 
    frm.target = '_blank'; 
    frm.submit(); 
} 

假设你有一个这样的形式:

<form id="form1" action="#"> 
    <input class="buttn" type="button" value="Test" onclick="pdf()" value="Test" /> 
</form> 

还要确保万一你没有用的名字submit输入您的表单中,因为这会覆盖该submit功能:

<input type="text" name="submit" /> 
+0

不可以。虽然使用分号明确结束语句是一种很好的风格,因为某些情况不会以您所期望的方式结束语句,但这不是问题。 – Quentin 2010-03-28 13:33:27

+0

@David,我建议这是一个很好的做法,我同意你的看法,这里可能不是问题,但你永远不知道,如果脚本是用包装器压缩的话会怎么样? – 2010-03-28 13:40:17

+0

一个体面的包装工将解决这个问题。如果它不是一个好的打包器,那么我会希望它在成功设置目标属性之前出错。 – Quentin 2010-03-28 13:49:45

1

做一个形式是这样的:

<form id="form1" action="" onsubmit="pdf();return false;"> 
    <input class="buttn" type="submit" value="Test" value="Test" /> 
</form> 
+0

这是一个更好的方法,但Darin Dimitrov对于语法错误是正确的。他也应该在pdf()中返回true,而不是提交并返回false? – 2010-03-28 13:23:14

+0

他提交的表单是否相同? – 2010-03-28 13:32:06

+0

很难说出这里实际提出的是什么,但它看起来像归结为“使用onsubmit而不是onclick” - 这不会解决问题,并且可能不适合看起来像想要的情况如果单击*特定*按钮,则提交到不同的地址。 – Quentin 2010-03-28 13:43:10

0

您没有给我们提供您用来创建表单的代码,也没有告诉我们浏览器报告了什么(如果有)错误,但是,这个问题的常见原因是提交了一个提交按钮名称或标识提交

任何表单控件都可以从表单对象访问,其属性与其名称匹配(如果不同,则可以使用与其ID匹配的另一个表单)。这种方式会破坏表格(除了其他控件)的任何现有属性,包括submitreset方法。

最简单的解决方案是重命名控件,使其与现有属性不冲突。

另外,看到How to reliably submit an HTML form with JavaScript?