2013-03-01 67 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*/ 
    } 
});