1

私はjavascriptに少し慣れていません。htmlフォームのチェックボックスがたくさんあります。チェックボックスは、Pythonスクリプトから動的に生成されます。最後のチェックボックスは「N/A」というタイトルです。他のチェックボックスのいずれかをチェックすると、「N/A」チェックボックスが自動的に消えるようにします。N / Aチェックボックスがチェックされている場合、他のチェックボックスは消えます。そしてもちろん、チェックボックスをオフにすると、逆のことが起こるはずです。javascriptがそれらを識別できるように、異なる入力フィールドに異なるIDを割り当てる必要があることは知っていますが、実際に消えるアクションを発生させるためにjavascriptを作成する方法がわかりません。ありがとうございました。

編集;; いくつかの動的なPythonコード:

print "<blockquote><strong>Labels:</strong><br/>"
for elem in output_list:
    if elem not in non_delete_list:
        print "<input type=\"checkbox\" name=\"remove_cd\" value=\"" + elem + "\" />" + elem + "<br/>"
print "<input type=\"checkbox\" name=\"remove_cd\" value=\"r_on\" />N/A:"
print_reason_list()
print "<font color=\"#cc0000\">Reason Required</font><hr/>"

したがって、基本的に、value = elem部分を持つものはすべて動的であり、最後のチェックボックスはN / A(value = "r_on")です。

編集2:

したがって、@ Ankitのおかげでボックスを非表示にすることができます(document .... style.display = "none"を使用)。私が抱えている問題は、チェックボックスをオンにすると、それぞれのIDが完全に非表示になることです。これを修正するために、非表示と再表示の機能を作成しました。onclickは次のようになります。

"onclick=if(this.checked){hide("NA")}else{unhide("NA")}" 

これにより、チェックボックスをオフにして、それぞれのタグを再表示できます。しかし、私は新しい問題に直面しています。値elemのチェックボックスを使用します。2つのチェックボックスをオンにしてから、1つのチェックボックスをオフにすると、「NA」が再び表示されます。チェックされている「elem」ボックスがある限り、非表示のままにしておきたい。基本的に、現在の状態を確認するには、すべてのチェックボックスを再スキャンする必要があります(私は思います)。これどうやってするの?

4

2 に答える 2

2

次のコマンドを使用して、javascriptを使用してhtml要素を有効/無効にできます。

document.getElementById('<the id of your checkbox here>').disabled = true;

あなたの場合、動的チェックボックスの周りにdivタグを置き、必要に応じてそのdivを追加/削除します。

例:-

print "<blockquote><strong>Labels:</strong><br/>"

for elem in output_list:
    if elem not in non_delete_list:
        print "<div id=\"listBox\" >"
        print "<input type=\"checkbox\" name=\"remove_cd\" value=\"" + elem + "\" onclick=\"if(this.checked){myFunction("upperChkBoxes")}\" />" + elem + "<br/>"
        print "</div>"
print "<input type=\"checkbox\" name=\"remove_cd\" value=\"r_on\"  onclick=\"if(this.checked){myFunction("NA")}\"  />N/A:"
print_reason_list()
print "<font color=\"#cc0000\">Reason Required</font><hr/>"


function myFunction(par){
// put your logic of add/remove here based on par value as "upperChkBoxes" or "NA"
}

お役に立てば幸いです。

于 2012-07-02T15:53:57.007 に答える
2

cssプロパティを使用してhtml要素を表示または非表示にすることができますdisplaynone

それを消すために

document.getElementById('<the id of your checkbox here>').style.display = "none";

または見せびらかす

document.getElementById('<the id of your checkbox here>').style.display = "block";

jqueryを使用している場合は、同じことを簡単に実行できます

$('#id of the checkbox').hide() or $('#id of the checkbox').show() 
于 2012-07-02T15:59:30.540 に答える