2011-08-09 19 views
-1

こんにちは私のアプリケーションの壁に重要なメッセージを公開するためにこのコードを使用しています。メッセージ壁に重要なメッセージを公開するためのチェックボックスを使用しています。問題は、重要なメッセージを公開した後で、重要なメッセージを公開した後もチェックボックスがオンのままであることを意味します。このために私を助けてください。JavaScriptヘルプが必要

<div class="checkbox" id="checkboxShow" name="userCheckList1" style="display:block;" onclick="importantChkBoxChange(userCheckListShow.checked);"> 

    <input type="checkbox" name="userCheckList1" id="userCheckListShow" unchecked="unchecked" 
    onchange="importantChkBoxChange(userCheckList.checked);"/> 
    </div> 

    <div class="checkbox" id="checkboxHide" name="userCheckList1" style="display:none;" onclick="importantChkBoxChange(userCheckListHide.checked);"> 

    <input type="checkbox" name="userCheckList1" id="userCheckListHide" unchecked="unchecked" 
    onchange="importantChkBoxChange(userCheckListHide.checked);"/> 
    </div> 
    <span class="fl" style="margin:3px 0px 0 0;" ><@spring.message "label.employee.home.Important"/></span> 

及びこれに使用されるスクリプトは次のとおりです: と私のコードがある

function importantChkBoxChange(chkBoxStatus){ 

     if(chkBoxStatus == true){ 
      document.forms['messageWallForm'].elements['important'].value="checked"; 
     }else if(chkBoxStatus == false){ 
      document.forms['messageWallForm'].elements['important'].value="unchecked"; 
     } 
    } 
+3

あなたの質問には説明的なタイトルを付けてください。 "JavaScript help needed"は、実際の問題については何も教えてくれません。 3つの質問は「IEのjQuery問題」と「Mozilla Firefoxのjavascriptエラー」という2つの質問はどちらも行いません。 – Bart

+0

@Raman:質問の書式を変更して書き直すことで助けたいと思っていましたが、それはとてもひどく公式化されています。 userCheckList、UserChecklistHideおよびUserCheckListShowとは何ですか? – mplungjan

答えて

0

[OK]を、最初uncheckedは、入力のプロパティではありません。 XMLを意識したい場合は<input type="checkbox" checked="checked" />にすることができますが、単に「checked」を省略することもできます。<input type="checkbox" checked />が選択されていますが、デフォルトではオフになっていますので、unchecked属性はありません。

第2に、変数userCheckListHideとuserCheckListShowがあることに気付きましたが、これらの変数の宣言は表示されません。それらが存在すると確信していますか?入力が作成された後にuserCheckListShow = document.getElementById("userCheckListShow")が呼び出されましたか?さもなければあなたはヌル値を扱っています。

第3に、チェックボックスとラジオボタンでは、値に興味がありません。興味があるのは、checkedです。あなたの機能再書くことができます:あなたは、これが選択されているいずれかのご質問でのCBののかどうかを反映したい場合は、注意点として

// changed the variable name so that it wouldn't scroll. Your var. name was fine. 
function importantChkBoxChange(stat){ 
    // since your test is if(checked) set it to checked otherwise set it to 
    // unchecked, you can simply set the checked property directly. 
    document.forms['messageWallForm'].elements['important'].checked = stat; 
} 

を、両方onchangeハンドラは次のようになります。

importantChkBoxChange(userCheckList.checked || userCheckListHide.checked); 
0

どこから始めるべきかわかりませんが、ここにいくつかの指針があります。

  • チェックボックスの値を変更すると、チェックボックスのオン/オフが切り替わりません。チェックされた属性があります。document.getElementById( 'checkBoxId')のようなものです。checked = true
  • DOM要素を参照するにはDOM IDを使用してください。
  • (真chkBoxStatus ==)は
  • 冗長である場合は、チェックボックス
  • のための未チェックの属性を使用すると、(のonchangeのような)イベントでのJS関数にチェックボックスのチェックをステータスを送信したい場合は、あなたが行うことができますありませんonchange = "foo(this.checked)"のようになります。