我有一个隐藏的输入:
<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);
}