2012-01-26 7 views
1

私はappendchildでチェックボックスを作成しています。私は彼らの状態を確認できるようにしたい。フォーマットがdocument.form.checkboxname.valueであるはずですが、私が使用するフォーム名またはチェックボックス名の組み合わせに関係なく、私には応答がありません。Javascriptのappendchildチェックボックスから要素の状態を取得するにはどうすればよいですか?

 var myParagraph=document.getElementById("myLine"); 
      myForm = document.createElement("FORM"); 
      myForm.setAttribute("name", "myForm2"); 
      mytable = document.createElement("TABLE"); 

     var CB_Delete = document.createElement('input'); 
      CB_Delete.type = "checkbox"; 
      CB_Delete.name = "CB_Test"; 
      CB_Delete.setAttribute("name", "CBTest2"); 
      CB_Delete.value = 2; 
      CB_Delete.onclick = answer; 
      theCell.appendChild(CB_Delete); 

要約このチェックボックスをオンにすると、応答機能で警告が表示されます。どうもありがとうございます! フォームとチェックボックスをアラート(document.form.checkbox.value)で置き換える方法を明確にするにはどうすればよいですか?

+0

チェックボックスに属性とプロパティの名前に異なる値を指定しています。私はそれが必要だとは思わない。 – pimvdb

+0

なぜチェックボックスに '.value'が割り当てられるのですか –

+0

@Mattなぜそれが問題になるのですか? – kapa

答えて

3

CB_Delete.checkedが動作するはずです。 HTMLInputElement on MDNを参照してください。

console.log(CB_Delete.checked); 

jsFiddle Demo


  • あなたのチェックボックスがオンまたはオフにするには、あなたはそれぞれCB_Delete.checked = trueCB_Delete.checked = falseを行うだろう。 checkedはブール値を持つと予想されるオブジェクトプロパティです。 CB_Delete.checkedは単に現在の値を照会します。

  • イベントハンドラ関数では、現在イベントを処理している要素をthisとして参照できます。だから、私の以前のjsFiddleの例から:

    CB_Delete.onchange = function() { 
        console.log(this.checked); /* this refers to the checkbox here */ 
    }; 
    

    あなたにも、あなたのanswer機能でthisを使用することができます。

  • handling events on Quirksmodeについて詳しく読むことができます。

  • 注:CB_Delete.onchangeを使用すると、ほとんどの場合、イベントハンドラを接続することは非常に古く、実際には推奨されません。これを行うには、CB_Delete.addEventListener('change', answer, false)を使用するのが正しい方法です。以前のIEでは問題がありますが、代わりにattachEvent()があります。 this technique and why to use it on Quirksmodeについて読むことができます(記事は3歳ですが、"Unfortunately few browsers support it at the moment."のようなものを読むときはこれを考慮に入れてください)。ブラウザの相違を隠すために、jQueryのようなライブラリを使用することができます。

+0

私はここでかなり基本的な何かを欠落している必要があります。あなたの答えをありがとう。 CB_Delete.checkedを実行してチェックボックスをオンにしますか? およびconsole.log(CB_Delete.checked); CB_Deleteは認識されたオブジェクトではないと私に伝えます。 関数の分離関数 "answer"から、チェックボックス(関数の値など)に関する何かを知らせるアラートを得るにはどうすればよいでしょうか?私が何を試しても、チェックボックスを見つけることはできません。お待ち頂きまして、ありがとうございます。 – Zombian

+0

@Zombian私は私の答えにいくつかの詳細を追加します。 – kapa

+1

すごくありがとう!あなたは私の問題を解決し、私に良い文書をくれました。私は、あなたが私のためにこれをやり遂げる時間を増やすためにあなたの道を離れることに感謝します。 – Zombian

関連する問題