2010-04-04 32 views
1

我在提交表單得到這個代碼在我們的表單中使用javascript有什麼優點和缺點?

 
<form id="myform" action='hello.php' method='GET'> 
    <input type="button" name="newWin" onclick="frmSubmitSameWindows();"> 
    <input type="button" name="SameWin" onclick="frmSubmitNewWindows();"> 
<form> 

然後使用一些JS功能的頭部;

 
function frmSubmitSameWindows() { 
form.target = ''; 
form.submit(); 
} 


function frmSubmitNewWindows() { 
form.target = '_blank'; 
form.submit(); 
} 

什麼的利弊時,我們使用JavaScript事件函數如frmSubmitSameWin()和frmSubmitNewWin()在我們的形式?據我所知,這是最好的解決方案,當我們需要提交東西。還有其他偏好嗎?那麼我現在得到的方式更好嗎?

+0

這可能是一個愚蠢的問題,但你的表格是怎麼來提交使用GET POST的呢? – R0MANARMY 2010-04-04 05:44:55

+0

@ R0MANARMY有什麼問題?它變成了一個get參數。 – 2010-04-04 05:46:26

+2

與通常的問題是,它使得它很容易反覆發生同一表單提交,或表單提交的結果,由Web瀏覽器緩存,即使結果應該在以後更改。此外,它還會用含有表單數據的醜陋長URL來污染用戶的瀏覽器。這不是純粹的壞事 - 只是伴隨着許多醜陋的副作用。有一個原因,POST是習慣於表單提交... – sblom 2010-04-04 05:50:04

回答

2

什麼是 我們 形式使用JavaScript的利弊?

專業:提供改善用戶體驗(動態,更快,無內容閃存等)的可能性。
Con:你應該編碼它unobtrusively。你的例子不是。當客戶端禁用JS時它失敗。

因爲年齡我已經開發了很多網站,但我似乎無法記住一個有效的商業理由有兩個提交按鈕,一個提交表單在同一窗口等將其提交到一個新的窗口。我建議重新考慮這種方法,並最終提交一個提交按鈕。代碼中的其他缺陷已由Mendy提及。

+0

也許這是另一個問題,跆拳道; d,但有什麼辦法讓它不發生故障時,客戶端已禁用JS?我必須編寫代碼才能使其更好? – justjoe 2010-04-04 06:03:56

+1

只需使用一個按鈕,或使用兩種形式。如果你必須重複輸入字段,最後一個也不是很友好。 – BalusC 2010-04-04 06:07:11

2

使用onsubmit事件form元素。並使用submit輸入instead按鈕。這樣你可以有一個單一的功能來確定你想要做什麼。

此外形式目標=「空白」不推薦的,因爲它是不推薦使用,並且它不是在HTML 4.01嚴格/ XHTML 1.0嚴格DTD支撐。

相關問題