2013-03-01 62 views
0

如何更改此功能,以便在用户选中某个框而不是单击某个按钮后执行该功能?另外,如果他们取消选中,另一个函数会被执行。对复选框执行操作

$("#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 
+1

你能否提供更多的HTML或一个[jsFiddle](http://jsfiddle.net/)作为你现在拥有的例子吗? – Walls 2013-03-01 21:12:04

+0

“另外,如果它们取消选中,则会执行另一个函数。”那是什么功能? – j08691 2013-03-01 21:12:58

回答

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

那么,与有信息,我这里有一些基本guidlines:

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

的jsfiddle例子:http://jsfiddle.net/uHEhh/1/

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*/ 
    } 
});