我有一个隐藏的输入:
<input type="hidden" id="paidIds" name="paidIds" value="[]">
它以空数组作为其值开始。
我想从中添加和删除项目,但我不知道如何操作。
这是我到目前为止的代码:
附加:
var $paidIds = $('#paidIds').val();
$paidIds.push($id);
$('#paidIds').val($paidIds);
要删除:
var $paidIds = $('#paidIds').val();
var $index = paidIds.indexOf($id);
if($index != -1) {
$('#paidIds').val().splice($index, 1);
}
$('#paidIds').val($paidIds);
到目前为止,问题之一是 $paidIds 在以下之后仍未定义:
var $paidIds = $('#paidIds').val();
不知所措,谷歌也没有帮助-__-
编辑 在调试器 $paidIds = [4] 中部分工作,但它没有设置该值。
var $paidIds = JSON.parse($('#paidIds').val());
$paidIds.push($id);
$paidIds = JSON.stringify($paidIds)
$('#paidIds').val($paidIds);
EDIT2修复了缺失的#
最佳答案
您需要将字符串转换为对象。
更改:
$('paidIds').val()
至
$('#paidIds').val()
尝试:
var $paidIds = $('#paidIds').val();
if($paidIds != ""){
$paidIds = JSON.parse($paidIds);
}
关于javascript - 修改隐藏输入中的json数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441582/