在复选框上执行操作

时间:2013-03-01 21:09:40

标签: javascript jquery html5

如何更改此功能,以便在用户选中框后执行此功能,而不是单击按钮?此外,如果取消选中,则会执行另一个函数。

 $("#saveData")
     .click(function (e) {
     e.preventDefault();
     localStorage.setItem("flag", "set");
     var data = $("#form1").serializeArray();
     $.each(data, function (i, obj) {
         if (obj.name != "creditCard") {
             localStorage.setItem(obj.name, obj.value);
         }
     });
 });

这是输入字段,

<input id="saveAddress" type="checkbox" name="address">Save Address

3 个答案:

答案 0 :(得分:2)

嗯,我在这里的信息是一些基本准则:

$('#checkbox_element').change(function(){
  if(this.checked){
    //checkbox checked, do your thing
  }else{
    //it has been unchecked
  }
});

JSFiddle示例:http://jsfiddle.net/uHEhh/1/

答案 1 :(得分:1)

$("#saveData").click更改为$("#saveAddress").click,因此您可以获得以下内容:

$("#saveAddress")
     .click(function (e) {
     e.preventDefault();
     localStorage.setItem("flag", "set");
     var data = $("#form1").serializeArray();
     $.each(data, function (i, obj) {
         if (obj.name != "creditCard") {
             localStorage.setItem(obj.name, obj.value);
         }
     });
 });

(也可以在事件处理程序中使用$(this).(':checked')执行检查/取消选中的不同操作)

答案 2 :(得分:1)

你可以这样做:

 $("#saveAddress").click(function(e) {
   if($(this).prop("checked")) {
    localStorage.setItem("flag", "set");
    var data = $("#form1").serializeArray();
    $.each(data, function(i, obj) {
        if(obj.name != "creditCard") {
            localStorage.setItem(obj.name, obj.value);
        }
    });             
   } else {
       /*Other function code*/
   }
});