2013-07-17 67 views
0

我使用JavaScript,HTML和jQuery Mobile構建PhoneGap應用程序。在JavaScript中不使用表單動作來提交表單的最佳方式

所有的HTML都在同一個文件中,分爲<div data-role="page">作爲頁面。

幾頁有一個表單,包括一個或多個文本/選擇輸入和一個提交按鈕。

提交不是一個傳統的表單提交按鈕,但使用onClick的按鈕運行JavaScript函數可以做很多事情。

我想有這種形式的特點:

  1. 按下按鈕時運行的功能之後,清除表單。
  2. 在某些情況下,該功能應該改變頁面。
  3. 其中一個輸入的輸入按鈕應提交表單(激活功能)。

我應該使用表單HTML標記嗎?如果是這樣,我應該採取什麼行動?如何清除表單? 等

回答

0

您仍然可以使用表單標記,因爲它對標記很有用。

只要確保你的按鈕具有屬性

type="button" 

否則按鈕將默認提交表單。

重置表單:

+0

如何重置形式?如何在按下輸入表單時使提交按鈕成爲點擊按鈕? – CaptainNemo

+0

如果你要走這條路線,你可能會想要有幾個按鈕,每個功能都有一個。 –

0

如果你正在嘗試的onClick綁定到一個輸入類型=「提交」,那麼你就要有一個壞的時間。

不幸的是,即使您單擊該按鈕時返回false或e.preventDefault,表單仍會發送提交觸發器,因此一旦onClick代碼完成,它將提交。

例子:

<form action="woot.php" method="POST"> 
    <input type="submit" value="submit" onClick="alert('You clicked me! How could you?! It's cool the form will still go to woot.php. return FALSE wont help you either.'); return FALSE;"> 
</form> 

你可能想要做什麼:

<form action="woot.php" method="POST"> 
    <input type="submit" value="Submit" onSubmit="alert('You aint goin nowhere!'); return FALSE;"> 
</form> 

你應該做的:

<form action="woot.php" method="POST"> 
    <input type="button" value="Button" onClick="alert('Away with you!'); window.location = 'http://www.google.com/';"> 
    <input type="button" value="Button" onClick="someCoolFunction();"> 
</form> 
+0

什麼是woot.php?爲什麼是POST? – CaptainNemo

+0

對不起,我是一個PHP Web開發人員,woot.php將是表單提交給數據處理的文件。 POST是數據傳輸到woot.php的方法。我之前從未使用過phoneGap,但是在快速查看了他們的網站和產品後,我發現

標記可能不是必需的。我會用JSfiddle稍微評論一下。 – MonkeyZeus

0

我不會用type="button",特別是如果你想在用戶按enter時有最好的表單提交機會。

使用常規形式<input type="submit">,然後你的JavaScript:

$('form').submit(function(e) { 
    // all your form handling here; 
    if (your_form_was_validated_and_handled) { 
    $('input[type!="submit"]').val(''); 
    } 
    e.preventDefault(); 
}); 

通用小提琴:http://jsfiddle.net/

+0

我誤解了這個問題。我以爲他不希望表單提交。 –