2010-09-04 168 views
3
function safe(){ 
    if($(this).is(':checked')){ 
     $("select[name='sort']").attr("disabled", "disabled"); 
     $("input[name='group']").attr("disabled", "disabled") 
    } else { 
     $("select[name='sort']").attr("disabled", false); 
     $("input[name='group']").attr("disabled", false) 
    } 
} 
$('input#safe').change(failsafe); 

我有這個功能,我想同時運行onLoad以及onChange。目前只有onChange工作,但onLoad,這些字段保持啓用狀態。OnLoad和OnChange(jQuery)

感謝您的幫助!

回答

3

不完全確定這是否是您要查找的內容,但如果您希望在頁面加載時運行safe()代碼,請嘗試此操作。

例子:http://jsfiddle.net/ewNEc/

$(function() { 

    function safe(){ 
     if(this.checked){ 
      $("select[name='sort']").attr("disabled", "disabled"); 
      $("input[name='group']").attr("disabled", "disabled") 
     } else { 
      $("select[name='sort']").attr("disabled", false); 
      $("input[name='group']").attr("disabled", false) 
     } 
    } 
    $('input#safe').change(safe).triggerHandler("change"); 

}); 

用途.triggerHandler()火處理程序不改變狀態。

2

我在這裏假設safe是你指的failsafe函數,它只是一個發佈混合。取而代之的.is(':checked')你可以只使用.checked DOM屬性,使它很短,就像這樣:

$(function() { 
    $('input#safe').change(function() { 
    $("select[name='sort'], input[name='group']").attr("disabled", this.checked); 
    }).change(); 
}); 

.change()通話結束時觸發您剛纔綁定的change事件處理程序,所以它也運行負載。