禁用隐藏表单输入

时间:2013-04-08 00:05:25

标签: php html forms

我的表格有点像这样:

<form action="#" method="post">
 <select name="phase">
   <option>1</option>
   <option>2</option>
   <option>3</option>
 </select>
 <div data-phase="1">
  <input type="text" name="info" />
 </div>
 <div data-phase="2">
  <input type="text" name="info" />
 </div>
 <div data-phase="3">
  <input type="text" name="info" />
 </div>
</form>

通过使用JQuery,在任何时候,只显示一个DIV,对应于选择框中的值。

问题是POSTed的值被最后一个文本输入覆盖,因为它们都具有相同的名称。是不是在没有重命名输入?

3 个答案:

答案 0 :(得分:1)

是 - 在提交之前,动态删除不需要的div部分。您可以通过使用jQuery的submit()函数回调来实现此目的。

要删除元素,您可以使用jQuery的remove()函数。使用div ID会更容易,但您也可以使用索引来执行此操作。

答案 1 :(得分:0)

您可以在提交表单之前使用javascript动态重命名输入。或者您甚至可以在提交之前从DOM中删除禁用的输入。

例如,这样的事情可能有效:

$(input[name="info"]).filter(function() {
    return $(this).css('display') == "none";
}).remove();

因此,选择名为“info”的所有输入,其中包含display:none并将其删除。

答案 2 :(得分:0)

我很遗憾地说:你必须重命名每个div的名字。这样的事情 name =“info1”name =“info2”name =“info3” 在处理无线电输入类型时,只对name属性使用相同的名称。