【问题标题】:submit a disabled input in a form could not get value在表单中提交禁用的输入无法获得价值
【发布时间】:2014-10-05 12:48:12
【问题描述】:

表格如下;

<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 中的值。 这里有什么问题。

【问题讨论】:

  • 大多数(全部?)浏览器不会在提交表单时发送禁用字段

标签: php jquery forms submit


【解决方案1】:

不提交禁用的字段。您可以将其设为只读或隐藏,以便在提交时获取值。

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

【讨论】:

    【解决方案2】:

    这是预期的行为。

    改为使用

    <input readonly type="text"...
    

    或者如果你因为某种原因必须使用disabled,添加一个隐藏字段:

    <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'];
    

    【讨论】:

    • hidden 也是一个不错的选择。但在我的情况下,我猜它不是一个好选择。顺便说一句。感谢您的关注。
    • @robinclark007 这就是为什么我建议 readonly 作为最合适的解决方案....
    【解决方案3】:

    由于禁用input不能在表单中提交,所以你可以使用readonly="readonly",所以在下面使用:

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

    有关readonly

    的更多信息

    【讨论】:

      【解决方案4】:

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

      <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 " >
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-30
        • 2013-07-21
        • 2013-05-19
        • 1970-01-01
        • 2018-05-02
        • 2023-04-04
        相关资源
        最近更新 更多