2014-10-07 130 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

问题是这样的

相关问题