2014-10-07 114 views
2

注意:這是一箇舊帖子的重寫,以澄清被問到的內容。我可以爲提交按鈕設置兩個值嗎?

讓我們假設我有一個顯示一組行的單一窗體(例如,按順序排成一行),並且我想在每行之外放置一個「刪除」按鈕,但不幸的是我無法創建單行表單

另外我們假設表單轉到「通用行爲路由」即「editCart」控制器。

爲了舉例,我們假設在表單中還有其他幾個動作,例如將一個添加到數量中。

這必須使用同一表單中的多個提交按鈕完成。

如果它只有一個單獨的行,很容易,只需在按鈕上添加一個名稱/值,然後繁榮!完成!

<form action="/process-edition" method="post"> 
    <div>My nice things</div> 
    <button type="submit" name="subAction" value="delete">Delete</button> 
    <button type="submit" name="subAction" value="addOne">+1</button> 
</form> 

這是說:「嘿,動作/process-edition的控制器,我打算讓子操作delete」。或「子部分addOne」。

但是,當我們有多行時,您需要說「刪除本產品」或「添加本產品」之類的東西。

在這種情況下,您需要按鈕提交兩個值:a)子操作,b)要編輯的產品的ID。

<form action="/process-edition" method="post"> 
    <ul> 
     <li> 
      Product 1234: 'orange' 
      <button type="submit" name="subAction" value1???="delete" value2???=1234>Delete</button> 
      <button type="submit" name="subAction" value1???="addOne" value2???=1234>+1</button> 
     </li> 
     <li> 
      Product 6789: 'lemmon' 
      <button type="submit" name="subAction" value1???="delete" value2???=6789>Delete</button> 
      <button type="submit" name="subAction" value1???="addOne" value2???=6789>+1</button> 
     </li> 
    </ul> 
</form> 

我認爲在這種情況下deleteaddOne是什麼原帖問爲「靜態分配值」和12346789將是「隱藏」的價值觀是來自數據庫。該按鈕「知道」該Id,但不顯示該Id本身。

當然,這可以通過將多個表單設置爲幾個不同的控制器並在每個表單中隱藏字段來解決。但是讓我們假設你已經收縮到一個已經具有表單的佈局,並且你不能在其中創建多個表單,從而禁止你隔離要發送或未發送的隱藏字段。

柱的原始文本:

一個值必須對用戶隱藏,另一個必須被displayed.The隱藏值是從數據庫中檢索與所顯示的一個是靜態分配值?

+1

問題是不明確的,你要設置一個提交按鈕的值屬性? – developerCK 2014-10-07 12:39:06

+0

我想你會將標題與寫在按鈕上方的文字混淆起來。這可能是真的嗎? – DrCopyPaste 2014-10-07 12:42:20

+0

不是一個標題! @DrCopyPaste – SaGa 2014-10-08 09:44:34

回答

3

您可以使用data- attr

<button type="submit" name="buttonname" data-value="value2" value="Value1">value</button> 

然後用Element.getAttribute()現場DEMO

var buttom = document.querySelector("button"); 
var dataValue = buttom.getAttribute("data-value"); 

alert(dataValue); 

這種方式,您可以設置爲你想要儘可能多的價值只是添加data-*

的最好的部分是你可以使用

<input type="submit" name="buttonname" data-value3="value3" data-value="value2" value="Value1" /> 

Demo如果你不喜歡button

+0

我試圖在按鈕上使用'onclick =「someFunction(this.data-value)」',但是這不起作用。你知道爲什麼嗎? – 2016-09-29 15:39:36

+0

@SajibAcharya使用'onclick =「someFunction(this.getAttribute 「數據值」))「' – 2016-10-03 19:48:28

5

是的,通過使用不同的工具。

<button type="submit" name="buttonname" value="hiddenvalue">Shown Value</button> 
+0

問題是這樣的