属性我有一个数据属性的按钮:无法设置bollean值数据与jquery
<button id="manageEditContract" type="button" class="btn btn-default" data-is-allow-to-edit="@(Model.Contract.IsAllowToEdit)">
@(Model.Contract.IsAllowToEdit ? "Block" : "Unblock")
</button>
当用户点击我想要的按钮来更改其属性。由于我的操作方法返回的JSON对象具有两个属性“ISOK”和“IsAllowToEdit”,我写了这个功能:
$('#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,没有它没有运气。
UPDATED: 由于答案建议我应该使用“attr”将值设置为特定属性。但我也意识到,当我获得data属性的值时,我不应该使用“data”,因为它始终是相同的。看起来像“数据”属性缓存数据。 所以,与其
var isAllowToEdit = $(this).data('isAllowToEdit');
我应该使用:
var isAllowToEdit = $(this).attr('data-isAllowToEdit');
而且JSON.stringify没有必要在我的情况下使用。
* bollean =布尔 – evolutionxbox
什么是控制台输出,如果你做'如果(data.IsOk){执行console.log(数据); }'data.IsAllowToEdit'属性是否存在,并且定义了值? – loelsonk
是的,它存在。我更新了我的答案。谢谢你的帮助! –