2012-09-08 29 views
0

從網上瀏覽,我沒有看到很多設置功能等同於功能的例子。然而,在我發現的幾個論壇中,似乎很多人都說這種方法沒有得到廣泛的支持。提交表單時,是否可以使用action =「someFunction()」?

爲了解釋我的問題,我有一個表格,我想實現這個上:

<table border="0" cellpadding="2" cellspacing="5"> 
       <th colspan="2" align="center">Check Out</th> 
       <form name="checkOut" method="post" onSubmit="return(validate(this))" action="checkOut()"> 
        <tr><td>Territory Number</td><td><input type="text" name="numberOut" tabindex="1" maxlength="3" size="3" /></td> 
        </tr><tr><td>First Name of Publisher</td><td><input type="text" onKeyUp="showHint(this.value)" name="fName" tabindex="2" maxlength="15"/></td> 
        </tr><tr><td>Last Name of Publisher</td><td><input type="text" onKeyUp="showHint_l(this.value)" name="lName" tabindex="3" maxlength="15" /></td> 
        </tr><tr><td><input type ="checkbox" name="specialC" tabindex="4" value="Yes"/> Special Campaign</td> 
        </tr><tr><td><input type="button" onClick="clearForm()" value="Reset" /></td><td><input type="submit" value="Check Out" /></td> 
       </form> 
       <p>Suggestions: <span id="txtHint"></span></p> 
      </table> 

更具體地說,結賬()函數將使用Ajax表單值提交給PHP腳本,對數據庫運行一些插入命令(我想使用ajax來學習這種技術,因爲我對基於web的語言來說相當陌生,所以我想暫時停止使用jQuery)。截至目前,我沒有這個功能的例子。

當然,這引發了一個問題,我可以簡單地將該函數放入事件處理程序中:onSubmit =「checkOut()」?同時,我會離開行動=「」?我會假設整個函數會執行php腳本,並且完成我想要的,而不需要單獨的操作腳本。

任何反饋將不勝感激。

回答

2

使用<input type="button" />(或錨,或button,或其他),而不是<input type="submit" />。在按鈕的點擊事件,執行:

if(validate(document.getElementById("formId"))){ 
    // post the form w/ AJAX 
    checkOut(); 
} 

請記住,任何基於腳本的解決方案也許應該有一個非腳本選項。在這種情況下,它可以像在noscript標籤內部放置一個<input type="submit" />一樣簡單。

順便說一下,你的標記是無效的。 A form不能作爲table的直接子代出現。

2

你可以使它成爲action="javascript:checkOut();",但它幾乎肯定會更好地把它放在onSubmit處理程序。

+0

感謝您的反饋。我認爲情況會是這樣,但從許多論壇看,似乎有許多含糊不清的答案。 – Mlagma

0

使用這個代碼是做的最好的方式,

<input type="submit" id="submit_button"> 

像這樣

var submit = getElementById('submit_button'); 
submit.preventDefault(); 
submit.addEventListener('click', checkOut); 
在第一線

我們特定的按鈕,接下來我們避免做默認動作和JavaScript代碼接下來我們爲點擊按鈕添加一個收聽者

0

我通常使用:

<input type="button" value="Submit" onclick="myFunction();"> 

然後我的函數可以使用本地底部提交功能,如果一切正常:

if (isSuccess) 
    theForm.submit(); 
else 
    return false; 
相關問題