2013-07-18 9 views
17

フォーム内に2つのチェックボックスがあり、両方のチェックボックスがformの中にラップされています。チェックボックスをデフォルトでオフにする方法

formのいずれかには、autocomplete="off"という属性が追加されています。我々は、手動でこれらのチェックボックスをチェックして、私たちはF5を押すと、属性autocomplete="off"とチェックボックスのチェックを外しました場合は、以下の
は、ここではコードスニペット

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head></head> 
    <body> 
     <form name="chkBoxForm" > 
      <div> 
       <input type="checkbox" value="100" name="product"/>My Checkbox1 
      </div> 
     </form> 
     <form name="chkBoxForm" autocomplete="off"> 
      <div> 
       <input type="checkbox" value="200" name="product"/>My Checkbox2       
      </div> 
     </form> 
    </body> 
</html> 

今私の問題です。しかし、その属性を持たないチェックボックスはチェックされたままです。これはFireFox 22で発生します。

この動作はブラウザによって異なります。
IEでは、両方のチェックボックスがオンのままで、Chromeでは両方のチェックボックスがオフになっています。

しかし、私はアドレスバーのEnterキーを押すと、すべてのブラウザでチェックが外されます。

いつでも私たちがこれらのチェックボックスをオフにする方法を教えてもらえますか?F5
これはJavascriptで処理できることを認識しています。

これを処理する他のHTML方法はありますか?

+3

重複:http://stackoverflow.com/questions/299811/why-does-the-checkbox-stay-checked-when-reloading-the-page – FSou1

+0

このHTMLフォームはどのコンテキストで実行されますか?私は、asp.netアプリケーション、または何かのためのこれは何ですか?私が知る限り、ページをリロードすると、Cookieやビューステートがない限り、チェックボックスはデフォルトの状態に戻ります。 – Zack

+0

これはスタンドアロンのhtmlページです – Vel

答えて

13

いいえ、単純なHTMLの方法はありません。 Javascriptが..ジャバスクリプト内のすべてのチェックボックスを通して

ループこの時点で、あなたの唯一の解決策になると未チェックにそれらを設定するかもしれません:

var checkboxes = document.getElementsByTagName('input'); 

for (var i=0; i<checkboxes.length; i++) { 
    if (checkboxes[i].type == 'checkbox') { 
    checkboxes[i].checked = false; 
    } 
} 

onloadイベントリスナーでそれをラップし、あなたは問題ないはずです:)

1

これはブラウザ固有の動作で、エラーが発生したときにページを再読み込みして、入力した内容が失われないように、ユーザーの利便性を向上させる方法です。したがって、javascriptを使用してページの読み込み時にデフォルト値を設定しないとブラウザ間でこれを無効にする確実な方法はありません。

Cache-Control: no-store 

このquestionを参照してください:あなたは、ヘッダーを指定すると

Firefoxはいえ、この機能を無効にするようです。

+0

エラーが表示された場合、ユーザーはすべてを再度入力する必要があります。 javascriptを使用すると、入力テキストフィールドには触れず、目的の状態に設定することもできます。 @Davidは合意した。 –

+0

。私はこの機能を無効にすることは良いアイデアだとは思わない(javascriptまたはキャッシュヘッダによって)。ユーザーが値を変更した場合、何らかの理由でページが更新された場合には、同じ値を再度入力する可能性があります。しかし、これはOPが求めていたものです – Mel

+0

確かに、しかし、javascriptソリューションでは、あなたはまだリセットするものの完全なコントロールを持っています。こうすることで、単にチェックボックスをリセットして、テキストフィールドをそのまま残すことができます。 –

-1

私はあなたがチェック= "偽"を使うことができると思います。それはHTMLチェックボックスをチェックしないままにする方法です。 http://www.w3schools.com/jsref/dom_obj_checkbox.aspを参照できます。頭に浮かんだ

+0

1. w3foolsへのリンク、2.このリンクでは答えが得られません。 –

+0

3.チェックボックスのchecked属性はそのように使われていません – hayavuk

2

一つの迅速な解決策: -  

のdocument.getElementById( "markitem")。checked = false;
6

jQueryの

$('input[type=checkbox]').removeAttr('checked'); 

それとも

<!-- checked --> 
<input type='checkbox' name='foo' value='bar' checked=''/> 

<!-- unchecked --> 
<input type='checkbox' class='inputUncheck' name='foo' value='bar' checked=''/> 
<input type='checkbox' class='inputUncheck' name='foo' value='bar'/> 

+

$('input.inputUncheck').removeAttr('checked'); 
+3

jquery 1.6以降、これは '.prop( 'checked'、false)'でなければなりません。 –

2

あなたはidを持つチェックボックスを持っている場合はcheckbox_id.Youはprop('checked', false)またはprop('checked', true)とJSとその状態を設定することができます

$('#checkbox_id').prop('checked', false); 
+2

**レビューキュー**から:あなたの答えの周りにいくつかの文脈を追加してください。コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT

+0

私の答えを編集しました –

関連する問題