Javascript 检测复选框更改
我有一个复选框项目列表Javascript 检测复选框更改,javascript,jquery,Javascript,Jquery,我有一个复选框项目列表 <ul class="level_1 "> <li class="level_1"><input type="checkbox" name="Settings" class="Settings" value="1"><label> Text 1</label></li> <li class="level_1"><input type="checkbox
<ul class="level_1 ">
<li class="level_1"><input type="checkbox" name="Settings"
class="Settings" value="1"><label> Text 1</label></li>
<li class="level_1"><input type="checkbox" name="Settings"
class="Settings" value="2"><label> Text 2</label></li>
<li class="level_1"><input type="checkbox" name="Settings"
class="Settings" value="3"><label> Text 3</label></li>
</ul>
<div class="buttons">
<input Value="Save" type="submit" id="settings_save_button"
class="save yellow" name="settings_save_button"
onclick="return false;" value="" />
</div>
bindData: function() {
var self = this;
$("#settings_save_button").click(function() {
self.updateSettings();
});
};
updateSettings: function () {
var self = this;
var ele = self.element;
var formData = $(ele).find('form#edit_settings_form');
$.ajax({
type: "POST",
url: formData.attr("action"),
data: formData.serialize(),
success: function (data) {
var userInfo = eval(data);
self.userRepo.updateUser(userInfo);
alert("saved");
},
error: function (req, textStatus, errorThrown) {
if (req.status == Portal.Constants.AJAX_VALIDATION_ERROR_CODE) {
self.addErrorMessageAndShowThem(eval("(" + req.responseText + ")"));
}
},
datatype: "json"
});
}
文本1
文本2
文本3
bindData:function(){
var self=这个;
$(“#设置#保存#按钮”)。单击(函数(){
self.updateSettings();
});
};
更新设置:函数(){
var self=这个;
var ele=自我要素;
var formData=$(ele.find('form#edit_settings_form');
$.ajax({
类型:“POST”,
url:formData.attr(“操作”),
数据:formData.serialize(),
成功:功能(数据){
var userInfo=eval(数据);
self.userRepo.updateUser(userInfo);
警报(“已保存”);
},
错误:函数(请求、文本状态、错误抛出){
if(req.status==Portal.Constants.AJAX\u验证\u错误\u代码){
self.adderrormessage并显示它们(eval(“(“+req.responseText+”));
}
},
数据类型:“json”
});
}
我现在想去掉这个保存按钮。相反,我希望在用户每次选择一个新的复选框值时触发submit事件。如何使用updateSettings方法绑定任何复选框中的更改,而不是单击保存按钮的事件。您可以使用输入元素的绑定处理程序,该处理程序将在复选框的选中状态更改时调用
var self = this;
$('input[name="Settings"]').change(function () {
self.updateSettings();
});
您可以使用输入元素的绑定来绑定一个处理程序,当复选框的选中状态更改时,将调用该处理程序
var self = this;
$('input[name="Settings"]').change(function () {
self.updateSettings();
});
您必须将该事件绑定到您的复选框 像这样:
$(".Settings").on('change',function(e){
e.updateSettings();
});
您必须将该事件绑定到您的复选框 像这样:
$(".Settings").on('change',function(e){
e.updateSettings();
});
像这样
$('input[name="Settings"]').bind('click',function(){
//your code goes here
});
或
像这样干杯
$('input[name="Settings"]').bind('click',function(){
//your code goes here
});
或
干杯谢谢。就调用updateSettings方法而言,这很好。但是我的数据没有通过ajax调用得到更新。它通过“保存”按钮进行更新,但不通过复选框更改进行更新。我已经更新了问题。在选择第一个复选框时,我得到的不是“Settings=1”作为formData,而是“Settings=1&Settings=4”,这是旧值和新值。这就是值没有更新的原因。谢谢。就调用updateSettings方法而言,这很好。但是我的数据没有通过ajax调用得到更新。它通过“保存”按钮进行更新,但不通过复选框更改进行更新。我已经更新了问题。在选择第一个复选框时,我得到的不是“Settings=1”作为formData,而是“Settings=1&Settings=4”,这是旧值和新值。这就是值不更新的原因。