2017-11-26 16 views
0

JavaScriptフォームを使用してHTMLフォームのチェックボックスを検証しようとしています。私は未確認のままにしておけばフォームを返すことができましたが、ボックスがチェックされたときにフォームを提出することはできません。私は間違って何をしていますか?javascript関数でHTMLフォームのチェックボックスを有効にする

ありがとうございます。

<form method="get" action="http://www.randyconnolly.com/tests/process.php" id="mainForm" onsubmit="return Validate()"> 

<div id="rectangle"> 
      <label>I accept the software license</label> 
      <input id="accept" type="checkbox" name="accept" class="required"> 
     </div> 

function Validate() { 
//Form Validate 
var t = document.getElementById("title").value; 
if (t == "") { 
    alert("Empty Title Field"); 
    document.getElementById("title").style.backgroundColor = "red"; 
}else{ 
    document.getElementById("title").style.backgroundColor = "white"; 
} 

var d = document.getElementById("description").value; 
if (d == "") { 
    alert("Empty description field"); 
    document.getElementById("description").style.backgroundColor = "red"; 
}else{ 
    document.getElementById("description").style.backgroundColor = "white"; 
} 

var c = document.getElementById("accept"); 
if (c.checked != "true") { 
    alert("Please accept license"); 
    document.getElementById("rectangle").style.backgroundColor = "red"; 
    return false; 
}else{ 
    document.getElementById("accept").style.backgroundColor = "white"; 
} 

}

+0

対応するHTMLを投稿できますか? – OArnarsson

+0

チェックされていないと、実際に「ライセンスを受け入れてください」と表示されますか?私はc.checkedがブール値を返すと信じているので、文字列に対してチェックする必要はありません。実際に問題になるかもしれませんか? –

+0

はい、チェックボックスのアラートにフラグを立てます。しかし、ボックスがチェックされているかどうかにかかわらず毎回トリガされます。編集:私はまた試みた(c!= "真")、それは同じを実行します。 –

答えて

0

あなたは少しあなたがチェックロジックを変更する場合、これは動作します。代わりに、文字列「true」に

if (c.checked != true) { 
    alert("Please accept license"); 
    document.getElementById("rectangle").style.backgroundColor = "red"; 
    return false; 
}else{ 
    document.getElementById("rectangle").style.backgroundColor = "white"; 
} 

編集の真のブール値と比較したいと思う:私は、それが正しく白に#rectangle背景を設定しますように、他のブロックに渡された要素のIDを変更しました。

+0

素晴らしいです。これはうまくいきました。ありがとうございました! –

関連する問題