【问题标题】:Don't post form input fields which are hidden?不要发布隐藏的表单输入字段?
【发布时间】:2014-09-26 09:51:42
【问题描述】:

我创建了一个表单,其中根据选择显示/隐藏输入字段,我喜欢只发布可见的输入字段。目前隐藏输入字段的值也被提交了

我检查了 $_POST 并且我看到了

[chairs] => Array
    (
        [0] => chair-b-white
        [1] => chair-c-black
    )

    [num_of_chair-a-black] => 
    [num_of_chair-a-white] => 
    [num_of_chair-a-gray] => 
    [num_of_chair-b-black] => 
    [num_of_chair-b-white] => 2
    [num_of_chair-b-gray] => 
    [num_of_chair-c-black] => 5
    [num_of_chair-c-white] => 
    [num_of_chair-c-gray] => 

有没有办法跳过发布为空的输入字段?

【问题讨论】:

  • 你可以用 JavaScript 做到这一点。你已经在使用 JS 库了吗?
  • @Jasper 是的,jquery + bootstrap + bootstrapvalidator。顺便说一句,我通过 `$("#chairs").change(function() { $('.hide-el-chairs').hide(); $("#chairs option:selected") 隐藏/显示 div .each(function() { var str = $(this).attr("value"); $('#num_of_' + str).show(); $('.num_of_' + str + "_label")。显示();});});`

标签: forms http-post form-fields


【解决方案1】:

我假设您使用 javascript 切换字段的可见性。隐藏它们时,您还可以将它们设置为disabled。禁用的表单字段不会提交到服务器。

【讨论】:

  • 嗯,我隐藏了他们所在的 div。所以我必须禁用所有子输入字段?
  • 啊,是的,您必须在隐藏的每个 div 中单独禁用字段。
  • 嗯,我可以启用它们,但切换不起作用。在隐藏的 div 中,我禁用了所有选择菜单,$('.hide-el-chairs').hide(); $("#chairs").change(function() { $('.hide-el-chairs').hide(); $("#chairs option:selected").each(function() { var str = $(this).attr("value"); $('#num_of_' + str).prop('disabled', false);$('#num_of_' + str).show(); $('.num_of_' + str + "_label").show(); }); }); 现在输入字段已启用,但是当再次隐藏选择菜单时,我无法再次禁用选择菜单
  • 好吧,我想我明白了。我通过$('#option-chairs :input').prop('disabled',true);选择所有输入字段@
猜你喜欢
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多