У меня есть список элементов флажка.
<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, а не нажатием кнопки события события.
Вы можете использовать событие изменения входного элемента для привязки обработчика, который будет вызываться при изменении состояния флажка
var self = this;
$('input[name="Settings"]').change(function () {
self.updateSettings();
});
как это
$('input[name="Settings"]').bind('click',function(){
//your code goes here
});
ИЛИ
$('input[name="Settings"]').on('click',function(){
//your code goes here
return true;
});
ура
Вы должны привязать это событие к своему флажку
как это:
$(".Settings").on('change',function(e){
e.updateSettings();
});