表格值提交控制

时间:2012-01-02 03:39:07

标签: html forms controls submit

这项琐碎的任务对我来说真的很耗时。我正在为web项目做真正的基本用户界面(专注于业务逻辑)。如果已经有我的问题的确切答案,请重定向我,我将立即删除它。我只是不知道要搜索什么,基本短语太模糊了。

情景:

我需要使用/ someurlrequest?edit =(idOfelement)或/ someurlrequest?populate =(idOfElement)获取请求,但我得到/ someurlrequest?edit =(idOfelement)& populate =(idOfElement)(GET只是为了显示发送的内容,首选POST)

每当出现元素集时,我想要有两个按钮,但每当我按照表单提交动作下面显示的方式进行操作时,抓取请求的两个值(编辑和填充)意味着我可以进一步使用&#39 ; t处理请求,因为我不知道哪个按钮被按下了,因为两个名称/值对都被传递,我得说Edit = 1和Populate = 1,我显然只想要一对Edit = 1或Populate = 1。

 <c:forEach var="TrainingProgram" items="${programbank}">

     <form method="get" action="/someurlrequest">
        <p> ${TrainingProgram.name}</p 
        <p> ${TrainingProgram.shortDescription}</p>

   <p>    
     <input value="Edit" type="submit" />  
     <input name="edit" style="display: none;" value="${TrainingProgram.programId}" />
     <input value="Populate" type="submit" />
     <input name="populate" style="display: none;" value="${TrainingProgram.programId}" />   

   </p>
     </form>
 </c:forEach>

我能用基本的东西逃脱:

 <a href="/somerequest/edit=${TrainingProgram.programId}"> Edit <a/>
 <a href="/somerequest/populate={TrainingProgram.programId}"> Populate <a/>

但这会限制我GET,正如我之前提到的,我想要POST。

是否有可能用纯HTML解决它(缺少一些非常简单的东西?)? JS解决方案也很受欢迎,虽然我只在复制粘贴黑盒级别上理解JS而且我不希望别人为我做工作然后有效地责怪我,除非这是JS真正的基本任务: - )

谢谢,

1 个答案:

答案 0 :(得分:2)

嗯,你应该能够通过两种不同的形式来实现它:

 <p> ${TrainingProgram.name}</p> 
 <p> ${TrainingProgram.shortDescription}</p>
 <form method="POST" action="/someurlrequest">    
 <input value="Edit" type="submit" />  
 <input name="edit" type="hidden" value="${TrainingProgram.programId}" />
 </form>
 <form method="POST" action="/someurlrequest">
 <input value="Populate" type="submit" />
 <input name="populate" type="hidden" value="${TrainingProgram.programId}" />
 </form>

更多解释:

基本上,当您提交表单时,表单中包含的所有输入表单都会发送到操作URL。因此,即使您在同一表单中有两个提交按钮,它们也会发送相同的值。根据经验,您应该只有一个表单提交按钮(除非您在Javascript中有更复杂的逻辑)。