我有一个复选框项目列表。
<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"
});
}
我现在想摆脱这个保存按钮。相反,我希望每次用户选择新的复选框值时都会触发提交事件。如何使用updateSettings方法绑定任何复选框中的更改,而不是单击“保存”按钮的事件。
答案 0 :(得分:4)
您可以使用input元素的change event绑定将在复选框的选中状态更改时调用的处理程序
var self = this;
$('input[name="Settings"]').change(function () {
self.updateSettings();
});
答案 1 :(得分:0)
您必须将该事件绑定到复选框
像这样:$(".Settings").on('change',function(e){
e.updateSettings();
});
答案 2 :(得分:0)
$('input[name="Settings"]').bind('click',function(){
//your code goes here
});
OR
$('input[name="Settings"]').on('click',function(){
//your code goes here
return true;
});
干杯