【问题标题】:jQuery - Add/Remove Required to an inputjQuery - 添加/删除所需的输入
【发布时间】:2019-11-20 15:29:05
【问题描述】:

我尝试根据选择的值从输入中添加/删除“必需”元素。隐藏/显示是一种魅力,但所需元素(添加或删除)没有任何反应。 “prop”而不是“attr”也有同样的问题。

<div class="form-group">
  <label class="control-label  " for="id_Commission_Type">Commission Type</label>
  <div class=" ">
    <select name="Commission_Type" class=" form-control" required id="id_Commission_Type">
      <option value="" selected>---------</option>
      <option value="Percentage">Percentage</option>
      <option value="Amount">Amount</option>
    </select>
  </div>
</div>

<div class="form-group">
  <label class="control-label  " for="id_Commission_Percentage">Commission Percentage</label>
  <div class=" ">
    <input type="number" name="Commission_Percentage" step="any" class=" form-control" id="id_Commission_Percentage">
  </div>
</div>

<div class="form-group">    
  <label class="control-label  " for="id_Commission_Amount">Commission Amount</label>
  <div class=" ">
    <input type="number" name="Commission_Amount" step="any" class=" form-control" id="id_Commission_Amount">
  </div>
</div>

<script>
    $(function () {
        $("#id_Commission_Percentage").prop("required", true);
        $("#id_Commission_Type").change(function() {
            var Commission_Type = $("#id_Commission_Type").val();
            if (Commission_Type == "Percentage") {
                $("#id_Commission_Amount").hide();
                $("[for='id_Commission_Amount']").hide();
                $("#id_Commission_Amount").removeAttr("required");

                $("#id_Commission_Percentage").show();
                $("[for='id_Commission_Percentage']").show();
                $("#id_Commission_Percentage").prop("required", true);

            }
            else if (Commission_Type == "Amount") {
                $("#id_Commission_Percentage").hide();
                $("[for='id_Commission_Percentage']").hide();
                $("#id_Commission_Percentage").removeAttr("required");

                $("#id_Commission_Amount").show();
                $("[for='id_Commission_Amount']").show();
                $("#id_Commission_Amount").attr("required", true);

            };
        });

    });
</script>

【问题讨论】:

  • 你没试过吗:.attr('required', 'required'); ?控制台会说什么吗?
  • 嗨@ZottoZ,你能粘贴你的html代码吗?
  • 我刚刚添加了与脚本相关的HTML代码。我试过 attr("required", "required") 但它什么也没做。控制台显示没有错误;
  • @ZottoZ 您提供的代码对我有用。可能 required 不适用于input type=number

标签: jquery input required


【解决方案1】:

试试这个:

$(document).ready(function() {

        $("#id_Commission_Type").change(function() {
            var Commission_Type = $("#id_Commission_Type").val();
            if (Commission_Type == "Percentage") {
                $("#id_Commission_Amount").hide();
                $("[for='id_Commission_Amount']").hide();
                $("#id_Commission_Amount").removeAttr("required");

                $("#id_Commission_Percentage").show();
                $("[for='id_Commission_Percentage']").show();
                $("#id_Commission_Percentage").attr("required", true);

            }
            else if (Commission_Type == "Amount") {
                $("#id_Commission_Percentage").hide();
                $("[for='id_Commission_Percentage']").hide();
                $("#id_Commission_Percentage").removeAttr("required");

                $("#id_Commission_Amount").show();
                $("[for='id_Commission_Amount']").show();
                $("#id_Commission_Amount").attr("required", true);

            };
        });

    });

换句话说:尝试$(document).ready(function() {...}) 而不是$(function() {...}

【讨论】:

  • ...不同的是...?
  • 不幸的是它不起作用。如果我没记错的话,这两个结构是等价的。
  • @ZottoZ 它们是两种完全不同的结构。第一个在dom刚加载时调用,第二个在dom未加载时调用,所以第二个会产生问题。
  • @ZottoZ 我编辑我的答案尝试更改 $("#id_Commission_Percentage").prop("required", true);在 $("#id_Commission_Percentage").attr("required", true);并更改 $("#id_Commission_Percentage").prop("required", true);以同样的方式开始!第一行。现在它必须工作
  • 好吧,我刚刚尝试使用 Chrome 并没有成功,但使用 Edge 却成功了??!
猜你喜欢
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多