私のコードの何が問題になっていますか?ラジオボタンを検証する必要があります。最後のアイテムまで正常に動作します。[はい]または[いいえ]を選択すると、最後のオプションを空にしてフォームを送信できます。最後のオプションを検証できないようです。また、私はこのスクリプトを書きませんでした。私は正直にそれがどのように機能するか理解していません:/
これは私が持っているものです
function valida () {
if (document.example.name.value=="") {
alert ('NAME field is empty!');
return false;
}
else if (document.example.email.value=="") {
alert ('EMAIL field is empty!');
return false;
}
var radios = document.getElementsByName("yesorno");
var formValid = false;
var i = 0;
while (!formValid && i < radios.length) {
if (radios[i].checked) formValid = true;
i++;
}
if (!formValid) alert("Select Yes or No!");
return formValid;
var radios = document.getElementsByName("color");
var formValid = false;
var i = 0;
while (!formValid && i < radios.length) {
if (radios[i].checked) formValid = true;
i++;
}
if (!formValid) alert("Pick a colour!");
return formValid;
else {
return true;
}
}
<form name="example" id="example" action="submit-form.php" method="post" onsubmit="return valida();">
<fieldset>
<label for="name">Name:</label>
<input type="text" name="name" id="name"/>
<label for="email">Email:</label>
<input type="text" name="email" id="email"/>
<label>Yes or No?</label>
YES
<input name="yesorno" type="radio" class="radio" value="yes" />
NO
<input name="yesorno" type="radio" class="radio" value="yes" />
<label>Red, green or yellow?</label>
red
<input name="color" type="radio" class="radio" value="red" />
green
<input name="color" type="radio" class="radio" value="green" />
yellow
<input name="color" type="radio" class="radio" value="yellow" />
<input type="submit" value="submit" />
</fieldset>
</form>
編集:私はここにstackoverflowで解決策を見つけました。これは今私のために働きます:
function valida () {
if (document.example.name.value=="") {
alert ('NAME field is empty!');
return false;
}
else if (document.example.email.value=="") {
alert ('EMAIL field is empty!');
return false;
}
else if ($('input[name=yesorno]:checked').length == 0) {
alert ('Select Yes or No!');
return false;
}
else if ($('input[name=color]:checked').length == 0) {
alert ('Pick a colour!');
return false;
}
else {
return true;
}
}