这是我的代码:
$('#form').on('change', 'input', function (e){
e.preventDefault();
var cb = $(this);
if(cb.is(':checked')){
send_data(this);
}
else{
this.value=0;
send_data(this);
}
//if(!(this.checked)){
//$(this).val(0);
//}
});
send_data函数:
function send_data(obj) {
$.ajax({
type: 'POST',
url: 'some.php',
async: true,
data: $(this).serialize(),
success: function (msg) {
console.log(msg);
}
});
}
一些功能:
var inp_f =document.createElement('input');
inp_f.setAttribute('type', 'hidden');
inp_f.setAttribute('name', intrst);
inp_f.setAttribute('value', 0);
var inp = document.createElement('input');
inp.setAttribute('type', 'checkbox');
inp.setAttribute('id', intrst);
inp.setAttribute('name', intrst);
inp.setAttribute('value', 1);
我已经查看了几个问题,所以在你标记我重复的帖子之前;他们都没有解决我的问题。我创建了一个动态创建输入的函数。检查该输入时,将发送值1。如果未选中,我试图通过ajax调用发送值0。我创建了隐形字段,因为它确实识别了它。所以我接着尝试更改在脚本运行之后才设置的this.value=0
的值。然后只要页面没有重新加载,值就保持为0.
编辑:重新排序输入元素,控制台仍显示$(this).val() = 0