【问题标题】:Can't set bollean value to data attribute with jquery无法使用 jquery 将布尔值设置为数据属性
【发布时间】:2017-06-26 17:58:55
【问题描述】:

我有一个带有数据属性的按钮:

<button id="manageEditContract" type="button" class="btn btn-default" data-is-allow-to-edit="@(Model.Contract.IsAllowToEdit)">
       @(Model.Contract.IsAllowToEdit ? "Block" : "Unblock") 
</button>

当用户单击时,我希望按钮更改其属性。由于我的操作方法返回具有两个属性“IsOk”和“IsAllowToEdit”的 JSON 对象,所以我编写了这个函数:

$('#manageEditContract').on('click', function () {
    var isAllowToEdit = $(this).data('isAllowToEdit');

    $.ajax({
        url: '@Url.Action("ChangeEditOption")',
        type: 'POST',
        data: { isAllowToEdit: isAllowToEdit },
        success: function (data) {
            if (data.IsOk) {
                $('#manageEditContract').data('isAllowToEdit', JSON.stringify(data.IsAllowToEdit));
            }
        }
    });
});

但它没有改变。

我尝试使用 JSON.stringify,但没有它就没有运气。

更新: 正如答案所暗示的,我应该使用“attr”将值设置为特定属性。但我也意识到,当我获取数据属性的值时,我不应该使用“数据”,因为它一直都是一样的。看起来像“数据”属性缓存数据。 所以,而不是

var isAllowToEdit = $(this).data('isAllowToEdit');

我应该使用:

var isAllowToEdit = $(this).attr('data-isAllowToEdit');

在我的情况下也不需要使用 JSON.stringify。

【问题讨论】:

  • *bollean = boolean
  • 如果您执行if (data.IsOk) { console.log(data); },控制台输出是什么data.IsAllowToEdit 属性是否存在并已定义值?
  • 是的,它存在。我更新了我的答案。感谢您的帮助!

标签: javascript jquery json custom-data-attribute


【解决方案1】:

您可以使用.attr。这样就不用JSON.stringify了。

var boolValue = true;
$('#manageEditContract').attr('data-is-allow-to-edit', boolValue );

看看它是如何工作的。

var boolValue = true;
$('#manageEditContract').attr('data-is-allow-to-edit', boolValue)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id="manageEditContract" data-is-allow-to-edit="false">inspect me</div>

【讨论】:

    【解决方案2】:
    $('#manageEditContract').attr('data-is-allow-to-edit', JSON.stringify(data.IsAllowToEdit));
    

    应该可以的

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      相关资源
      最近更新 更多