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
4

3 回答 3

2

好吧,有了这些信息,我这里有一些基本的指导方针:

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

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

于 2013-03-01T21:13:36.690 回答
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*/
   }
});
于 2013-03-01T21:13:47.787 回答
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')在事件处理程序内部使用来执行不同的检查/取消检查操作)

于 2013-03-01T21:13:02.573 回答