您好,我输入的是日期类型,我正在对此进行验证。
仅当选中复选框时才需要此输入,因此我使用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"
}
});
}
}
}
在这里,如果未选中该复选框,我该怎么办,那么我必须删除输入中显示的必需规则:
$(document).ready(function () {
$("#ZFU").click(function () {
var rules = $("#DateDebutZFU").rules();
if (rules) {
$("#DateDebutZFU").rules("remove", "required");
}
});
});
现在我的问题是,尽管未选中该复选框,但始终显示所需消息,那么我的代码有什么问题?
答案 0 :(得分:0)
如果您需要根据复选框评估日期输入-只需
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')
并根据此条件添加/删除“必需”规则。希望对您有帮助。