2016-03-28 21 views
0

私はチェックボックスを持っています。 HTML::javascript関数が実行されていません

<input type="checkbox" id="selectallcheckbox" onClick="toggle(this)" /> 

とJavaScript:私はそれをチェックした場合、それはすべての結果を選択します

function toggle(source = false) { 
    if(!source) 
    { 
     var source = document.getElementById('selectallcheckbox'); 
    } 
    checkboxes = document.getElementsByName('id[]'); 
    for(var i=0, n=checkboxes.length;i<n;i++) { 
    checkboxes[i].checked = source.checked; 
    var id = checkboxes[i].id; 
    var res = id.replace("checkbox", "tr"); 
    if(source.checked) 
    { 
     $('#' + res + '').addClass('selected'); 
    } else { 
     $('#' + res + '').removeClass('selected'); 
    } 
    } 
} 

を、私は私のキーボードでCTRL + Aをクリックすると、今、私はすべての結果を選択しようとしています。ここに私のJavaScriptがあります:

jQuery(document).keydown(function(e) { 
    if (e.ctrlKey) { 
    if (e.keyCode == 65 || e.keyCode == 97) { // 'A' or 'a' 
     e.preventDefault(); 
     toggle(); 
    } 
    } 
}); 

しかし、この機能は動作しません。

jQuery(document).keydown(function(e) { 
    if (e.ctrlKey) { 
    if (e.keyCode == 65 || e.keyCode == 97) { // 'A' or 'a' 
     e.preventDefault(); 
     document.getElementById("selectallcheckbox").click(); 
    } 
    } 
}); 
+0

イベントハンドラは呼び出されていますか?何かエラーがありますか?問題をデバッグするために何をしましたか?実行中のバージョンを既に持っているので、コードをデバッグするのに最適な立場にいます。 –

+0

私はtoggle()を変更します。警告する( 'Hi');私の最後のコードで、私はこんにちは。しかし、私はトグル機能を実行することができませんでした –

+0

いいえ私はエラーがありません –

答えて

0

トグル関数は、引数または何が必要です:私はCtrlキーを行うことができますどのように+すべての結果

+0

しかし、Ctrl + Aをもう一度押すと、チェックボックスをオフにしません:) –

+0

@AykhanAmiraslanli今それは – gaetanoM

+1

になります* "トグル機能には引数が必要です。 't。それは '関数が(ソース=偽){'と 'if(!ソース)'のためにトグルするものです。 –

0

を選択するために、私は解決策を見つけました。引数が渡されない場合、引数自体はdomから直接取得できます。 htmlでは、toggle関数はthisキーワードを取得します。要素自体が渡されます。引数が渡されない場合でも、引数が定義されていませんので、それを動的に計算することができます。

function toggle(source = false) { 
    if(!source) 
    { 
     var source = document.getElementById('selectallcheckbox'); 
    } 
    ........... 

へ:

トグル機能で
<input type="checkbox" id="selectallcheckbox" onClick="toggle(this)"/> 

ことから変更しよう

function toggle(source) { 
     if (source === undefined) { 
      source = document.getElementById('selectallcheckbox'); 
     } 

最後に、あなたのjQuery(ドキュメント).keydown(function(e){change:

jQuery(document).keydown(function(e) { 
     if (e.ctrlKey) { 
      if (e.keyCode == 65 || e.keyCode == 97) { // 'A' or 'a' 
       e.preventDefault(); 

       // get the argument to the toggle function 
       var eleObj = document.getElementById('selectallcheckbox'); 

       // toggle the checkbox status 
       eleObj.checked = !eleObj.checked; 

       // call the toggle function with the correct argument 
       toggle(eleObj); 
      } 
     } 
    }); 
関連する問題