【问题标题】:Contact Form 7 dropdown value shows required field联系表格 7 下拉值显示必填字段
【发布时间】:2018-07-05 15:05:56
【问题描述】:

如果在下拉列表中选择了特定值,我发现了一个 javascript 来隐藏或显示文本字段。

<label> Delivery
[select* drop-down-menu include_blank id:delivery "Yes" "No"] </label>

<label id="deliveryaddress"> Delivery Address
[text* deliveryaddress] </label>

<script language="javascript" type="text/javascript">
document.getElementById("deliveryaddress").style.display = 'none';

document.getElementById("delivery").addEventListener("change", displayTextField);
  function displayTextField() {

    var dropDownText =  document.getElementById("delivery").value;

    if (dropDownText == "Yes") {
      document.getElementById("deliveryaddress").style.display = 'block';
    } else {
      document.getElementById("deliveryaddress").style.display = 'none';
    }
  }
</script>

如果选择“是”值,则会显示文本字段,我可以在此必填字段中输入。但是如果我选择“否”它的隐藏。在后台,它仍然是“否”的必填字段。但是在“否”上,它不应该是一个必需的字段。 希望有人可以帮助我如何做到这一点。

谢谢

【问题讨论】:

  • 不确定是否可以在客户端的这两种状态之间切换……我的意思是,您当然可以从字段中删除 required 属性,但是 AJAX 的服务器端验证我想,请求仍然不会关心那么多。 // 也许看看wordpress.org/plugins/cf7-conditional-fields,它承诺它可以正确处理这种情况(“必填字段可以在隐藏组中使用而不会导致验证问题。”
  • 非常感谢!现在一切都好:)

标签: javascript wordpress contact-form-7


【解决方案1】:

您还需要在“是”或“否”选项上设置/取消设置所需属性:

if (dropDownText == "Yes") {
  document.getElementById("deliveryaddress").style.display = 'block';
  document.getElementById("deliveryaddress").required = true;
} else {
  document.getElementById("deliveryaddress").style.display = 'none';
  document.getElementById("deliveryaddress").required = false;
}

【讨论】:

  • 不幸的是,不要为我工作。它仍然说它是必需的。我尝试了 CBroe 提到的插件,它对我有用。不过还是谢谢:)
猜你喜欢
  • 2017-08-06
  • 2017-02-15
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 2020-10-22
相关资源
最近更新 更多