首页 > 解决方案 > 如何使用 jquery / javascript 有条件地更改自定义属性的属性

问题描述

我有 3 种输入类型。一个文本框,两个日期。我在 HTML 中将自定义属性本身设置为data-ischanged = false. 在更改功能中,我正在制作它true。保存数据后(ajax 调用)。我正在尝试false再次将自定义属性更改为。但我无法这样做。

任何帮助将不胜感激。

HTML

                    <label>Description</label>
                    <input type="text" id="SelectedLookupTypeDescription" data-ischanged="false" />

                    <label style="padding:12px 12px">Eff. Start Date</label>
                    <input type="date" id="SelectedStartDate" data-ischanged="false" />

                    <label style="padding:12px 12px">Eff. End Date</label>
                    <input type="date" id="SelectedEndDate" data-ischanged="false" />

下面的 OnChange 函数:

$('#SelectedLookupTypeDescription').on('change', function () {
    $('#SelectedLookupTypeDescription').attr("data-ischanged", true);
});

$("#SelectedStartDate").on('change', function () {
    $("#SelectedStartDate").attr("data-ischanged", true);
});

$('#SelectedEndDate').on('change', function () {
    $("#SelectedEndDate").attr("data-ischanged", true);
});

成功调用 ajax 后,使用下面的代码我试图将值设置为 false

          var descselector = document.getElementById('SelectedLookupTypeDescription');
                descselector.setAttribute("data-ischanged", false);

                var StartSelector = document.getElementById('SelectedStartDate');
            StartSelector.setAttribute("data-ischanged", false);

                var EndSelector = document.getElementById('SelectedEndDate');
                EndSelector.setAttribute("data-ischanged", false);`

AJAX 代码

    $.ajax({
        type: 'POST',
        url: '/Reference/UpdateLookupTypeData',
        data: { TypeData: TypeData },
        beforeSend: function (xhr) { xhr.setRequestHeader('X-XSRF-TOKEN', csrfToken); },
        success: function (RefResponse) {
            toastr.success("Data saved successfully");
            getOtherDetails(Id);

                //var descselector = document.getElementById('SelectedLookupTypeDescription');
                //descselector.setAttribute("data-ischanged", false);

                var StartSelector = document.getElementById('SelectedStartDate');
            StartSelector.setAttribute("data-ischanged", false);

                var EndSelector = document.getElementById('SelectedEndDate');
            EndSelector.setAttribute("data-ischanged", false);
           }
        });

标签: javascripthtmljquerycustom-attribute

解决方案


尝试"false"不使用的值false


推荐阅读