2012-12-30 58 views
1

我用它來存儲我的複選框保存複選框狀態餅乾無需點擊

$("input.box").each(function() { 
    var mycookie = $.cookie($(this).attr('name')); 
    if (mycookie && mycookie == "true") { 
     $(this).prop('checked', mycookie); 
    } 
}); 
$("input.box").change(function() { 
    $.cookie($(this).attr("name"), $(this).prop('checked'), { 
     path: '/', 
     expires: 365 
    }); 
}); 

的狀態,我用這個在一個新的功能來檢查我的其中一個複選框:

if(code18 == 092) { 
    $(".validate-status").text("Correct!"); 
    $('#code18correct').show(); 
    $('input[name=code18box]').prop('checked', true); 
} 

它工程,它檢查框,但問題是,因爲我沒有點擊它,它不會將它保存到cookie。想不到如何解決這個問題。

有人嗎?

+0

'code18 == 092' - 領先的0會如果它不包含那個'9',把它作爲一個八進制數。更好的擺脫領先的0. – ThiefMaster

+0

感謝您的反饋! – user1913435

回答

0

只是trigger複選框的設置它的checked財產後change處理程序:

$('input[name=code18box]').prop('checked', true).change(); 
// which is the same as 
$('input[name=code18box]').prop('checked', true).trigger('change'); 

或者更好的性能,明智的版本使用.triggerHandler()

$('input[name=code18box]').prop('checked', true).triggerHandler('change'); 
+0

這正是我正在嘗試,但不能得到它的工作,非常感謝你! – user1913435

+0

沒問題。如果問題已解決,請勾選[接受的答案](http://meta.stackexchange.com/a/5235/186879),謝謝。 '=]' –