2012-09-11 117 views
0

爲django電子商務頁面創建付款表單,我遇到了處理保存的信用卡信息的情況。覆蓋HTML <input type = hidden>值

如果我想告訴我的服務器使用什麼動作,我是否需要將第一個輸入和按鈕封裝在自己的窗體中?或者我可以使用下面的代碼?

{% if user.is_authenticated and user.get_profile.stripe_customer_id %} 
     <input type="hidden" name="action=" value="delete_card"/> 
     <button type="submit">Use Another Card</button> 

     <input type="hidden" name="action=" value="pay_saved_card"/> 


{% endif %} 

回答

0

一般來說,對於要提交或取消的表單,會在表單中添加以下內容。

<input type="submit" name="action" value="Cancel" /> 
<input type="submit" name="action" value="Save" /> 

而且取決於在Django request.POST['action']查看你要麼你處理保存表單或做取消處理。

+0

不要認爲這是個好主意。如果用戶只是在輸入欄中按'enter'會發生什麼? –

0

您不能用HTML覆蓋隱藏字段,除非您可以使另一個控件發送具有相同名稱的參數,然後服務器端檢查情況。

的情況下,最簡單的方法是有一個像

<input type="checkbox" name="action" value="delete_card" id="othercard" /> 
<label for="othercard">Use Another Card</label> 

複選框不使用隱藏域。然後服務器端代碼應該只是測試action屬性的值delete_card的存在。

使用name="action="中的等號可能並不常見或不需要:提交表單時,會生成表單name = value的數據項,因此您將得到action==delete_card

+0

任何瀏覽器是否放棄重複的名稱參數? – lol