首页 > 解决方案 > 从输入日期中删除所需的规则

问题描述

您好,我有一个日期类型的输入,我正在对其进行验证。

仅在选中复选框时才需要此输入,因此我使用 jquery 执行了一个函数来添加所需的规则,现在如果未选中我的复选框,我想删除此规则。

这是我的HTML:

<div class="col-md-3 d-inline-block">
   <label class="mdc-text-field">
      @Html.TextBoxFor(model => model.DateDebutZFU, new { @Value = Model.DateDebutZFU != new DateTime() ? Model.DateDebutZFU.Value.ToString("dd/MM/yyyy") : "", @data_val_date = "La valeur doit être une date", @class = "mdc-text-field__input dataDate" })
      <span class="mdc-floating-label">Date Debut ZFU</span>
      <div class="mdc-text-field__bottom-line"></div>
   </label>
   @Html.ValidationMessageFor(model => model.DateDebutZFU, "", new { @class = "text-danger" })
</div>

<div class="mdc-switch align-top mt-1 mr-5">
   <div class="mdc-switch__track"></div>
   <div class="mdc-switch__thumb-underlay">
      <div class="mdc-switch__thumb">
         @Html.CheckBoxFor(m => m.ZFU, new { @class = "mdc-switch__native-control", @role = "switch" })
      </div>
   </div>
</div>

如果我点击按钮提交,这里添加规则的功能:

function btnclicked() {
    if ($("#btnedit").data('clicked', true)) {

        if (($("#ZFU").is(':checked'))) {
            $("#DateDebutZFU").rules("add", {
                required: true,
                messages: {
                    required: "Date Debut ZFU est obligatoire"
                }
            });
        }
    }
}

在这里,如果未选中该复选框,我将尝试做什么,那么我必须删除输入中显示的 required 规则:

$(document).ready(function () {
    $("#ZFU").click(function () {

        var rules = $("#DateDebutZFU").rules();

        if (rules) {

            $("#DateDebutZFU").rules("remove", "required");
        }
    });
});

现在我的问题是,尽管未选中复选框,但始终显示所需的消息,那么我的代码有什么问题?

标签: javascriptjqueryhtml

解决方案


如果您需要根据复选框评估您的日期输入 - 只需执行此操作

function btnclicked() {
    if ($("#btnedit").data('clicked', true)) {
    var isChecked = $("#ZFU").is(':checked');
        var $dateDeutZFU = $("#DateDebutZFU");

        if (isChecked) {
            $dateDeutZFU.rules("add", {
                required: true,
                messages: {
                    required: "Date Debut ZFU est obligatoire"
                }
            });
        }else{
            $dateDeutZFU.rules("remove", "required");
        }
    }
}

使用您的示例,我正在检查是否checkbox.is(':checked')并基于此条件添加/删除“必需”规则。打开这将帮助你。


推荐阅读