私は、ユーザーが少なくとも一つをチェックしていることを確認するために私のチェックボックスを検証する 、未定義の「確認しました」チェックボックスのためのキャッチされない例外TypeError:ここ</p> <blockquote> <p>Uncaught TypeError: Cannot read property 'checked' of undefined.</p> </blockquote> <p> :プロパティを読み取ることができません。しかし、私はこのエラーを得続ける、チェックボックス
<form name="userSurvey" onsubmit="return validAll()" action="mailto:[email protected]" method="post">
Name (Required): <input type="text" name="userName" id="userName" required=""><br> E-Mail (Required): <input type="text" name="mail" id="mail" required=""><br> Phone (Required): <input type="text" name="phone" id="phone" required="" onchange="validNumber()"><br>
<br>
<p>Please choose your favourite types of books.(check all that apply)</p>
<input type="checkbox" name="books" value="Science Fiction">Science Fiction
<input type="checkbox" name="books" value="Travel Guide">Travel Guide
<input type="checkbox" name="books" value="Short Story Collection">Short Story Collection
<input type="checkbox" name="books" value="Other">Other <br>
<textarea></textarea><br>
<input type="submit" name="submit">
<input type="reset" name="reset">
</form>
とJavaScriptの一部:
function validChoice()
{
var bookChoice = document.userSurvey.books.value;
var x= "";
for (i=0;i< 4;i++)
{
if (document.userSurvey['bookChoice'+i].checked)
{
bookChoice = document.userSurvey['bookChoice'+i].value;
x = x +"\n"+ bookChoice;
}
}
if (bookChoice == "")
{
window.alert("You must select at least one book category.");
return false;
}
else
{
var userName = document.userSurvey.userName.value;
var eMail = document.userSurvey.email.value;
var phoneNo = document.userSurvey.phone.value;
return true;
}
}
HTMLの一部であり、
私は現在JavaScriptで学んでいますので、私はJavaScriptだけでヘルプが好きです。 JSFiddle上
全コード: https://jsfiddle.net/7qh5segc/
どの行ですか?私はあなたのコードでチェックするかどうかチェックする前に要素を取得することができません。 –
ループの下の最初のIFステートメントの@ColinCline。 – MrDarkness96
あなたは 'document.userSurvey [bookChoice + i]'を意味しましたか(bookChoiceを引用符なしで)?それ以外の場合は、存在しない "bookChoice0"と呼ばれるフォーム内の要素を探します。私があなたが実際に望んでいるのは、bookChoice変数の値を使うことです。それでも、私はこのバリデーションを行うより良い方法があると思います。 – ADyson