在表单中提交禁用的输入无法获得价值

时间:2014-08-12 12:36:43

标签: php jquery forms submit

表格如下;

<form action="sendmail.php" method="get">
    <input type="text" name="phone" id="phone" data-clear-btn="true">
    <input type="text" name="name" id="name" data-clear-btn="true">
    <input disabled="disabled" type="text" name="textinput-disabled" id="textinput-disabled" placeholder="Text input" value="<?php echo $info;?>">
</form>

$ info =“type1”;并且$ info在表单中正常工作。

但在sendmail.php中

$name=$_GET['name'];
$type=$_GET['textinput-disabled'];
$phone=$_GET['phone'];

我得到了姓名和电话,但我无法获得textinput-disabled中的值。 这有什么问题。

4 个答案:

答案 0 :(得分:12)

未提交已停用的字段。您可以将其设为只读或隐藏,以便在提交时获得价值。

<input readonly type="text" name="textinput-disabled" id="textinput-disabled" placeholder="Text input" value="<?php echo $info;?>">

答案 1 :(得分:2)

这是预期的行为。

改为使用

<input readonly type="text"...

或者,如果由于某种原因必须使用禁用,请添加隐藏字段:

<input disabled="disabled" type="text" name="textinput-disabled" id="textinput-disabled" placeholder="Text input" value="<?php echo $info;?>">
<input type="hidden" name="hidden" value="<?php echo $info;?>">

$name=$_GET['name'];
$type=$_GET['hidden'];
$phone=$_GET['phone'];

答案 2 :(得分:0)

由于无法在表单中提交已禁用的input,因此您可以使用readonly="readonly",因此请使用以下内容:

<input readonly="readonly" type="text" 
       name="textinput-disabled" id="textinput-disabled" 
       placeholder="Text input" value="<?php echo $info;?>">

有关 readonly

的详细信息

答案 3 :(得分:0)

我遇到了同样的问题,但是有一个复选框。 由于readonly值不会更改复选框,因此无法单击它,因此我仍然必须使用disable选项。 因此,我只是在复选框下方添加了一个具有所需变量名称的隐藏字段:

<input type = 'checkbox' value = '1' name = 'EnableD_".$NR."' ";if($noti["ACTIVE"]==1)echo " checked "; echo " disabled >

<input type = 'hidden' value = '1' name = 'Enable_".$NR."' ";if($noti["ACTIVE"]==1)echo " checked "; echo " >