【问题标题】:$_POST not showing a form element hidden by jQuery$_POST 没有显示被 jQuery 隐藏的表单元素
【发布时间】:2013-07-22 18:00:34
【问题描述】:

我有一个表单,它使用 jQuery 隐藏不相关的字段,除非满足某些条件:

<form action="thepage.php id="subform" method="post">
      <h2>
        Select a Drawing Type:
      </h2>
      <div>
        <input type="radio" name="drawingType" tabindex="10" value="1"/>Drawing 1
        <input type="radio" name="drawingType" value="2"/>Drawing 2
        <input type="radio" name="drawingType" value="3"/>Drawing 3
        <input type="radio" name="drawingType" value="4"/>Drawing 4
      </div>
      <p class="drawingInput drawX">
        Is this drawing related to an old drawing?
        <input type="radio" name="revUp" tabindex="100" value="0"/>No 
        <input type="radio" name="revUp" value="1"/>Yes
      </p>

  <input type="submit" name="submitted" value="New Drawing" />
</form>

使用 jQuery:

$('.drawingInput').hide;
$('input:[name="drawingType"]').change(function(){
  if ($(this).val()==1){
    $('.drawingInput').hide();
    $('.drawX').show();
  } else if ($(this).val()==2){
    $('.drawingInput').hide();
    $('.drawX').show();
  } else if ($(this).val()==3){
    $('.drawingInput').hide();
  } else if ($(this).val()==4){
    $('.drawingInput').hide();
  } 
});
因此,选择绘制1或2时,显示下一个输入按钮。然后用户选择revUp 字段并提交,一切正常。但是,如果 p 从未显示,例如未在第一个单选框中选择值 1 或 2,则 revUp 永远不会 $_POST'ed,并带有 var_dump($_POST) 的证据。

如果用户从未看到revUp 的值,我该如何检索它?它在可见时显示在 var_dump 中,但在从未被选择时不显示。控制台阅读器也是如此,检查发送的标头。

【问题讨论】:

    标签: php html post hidden-field


    【解决方案1】:

    看起来像浏览器特定的东西。尝试将它们显示给用户,但不透明度为 99.99999% 或类似的东西,然后查看是否发送了这些值。

    另一方面:如果用户从未编辑过它们,您真的需要发送它们吗?这不就是说你知道他们的价值观吗?

    【讨论】:

    • 我在 Chrome 和 Firefox(最新版本)中都试过了,得到了相同的响应。我正在使用逻辑语句的值。我宁愿根据revUp 确定下一步的行动方案,而不是添加额外的逻辑。它会更便携。不透明的想法很有趣,但在语义上并不正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    相关资源
    最近更新 更多