2010-03-28 58 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?