Webフォームがあり、このphpフォームで無線コードを設定する方法は次のとおりです。
<input type="radio" name="2074" id="2074" value="Yes" class="valuetext" >Yes
<input type="radio" name="2074" id="2074" value="No" class="valuetext" >No
テキストフィールドに適したカスタム検証コードに取り組んでいますが、ラジオボタンで問題が発生するだけなので、これがチェックボックスの問題になると確信しています。
これが検証するコードです、
function blank(field) {
if ((field.type == "text" || field.type == "textarea") && (field.value == " " || field.value == ""))
{
return true;
}
else if ((field.type ="radio" || field.type == "checkbox") && (!(field.checked || field.selected || field.selectedIndex > -1)))
{
return true;
}
else {
return false;
}
}
ただし、ラジオボタンに関しては、最初に遭遇したラジオボタンのみをチェックします。たとえば、検証を実行し、セット内のどちらの無線もチェックされていない場合、それは機能し、必要なエラーメッセージを表示しますが、それは空の最初のボタンをチェックしたためです。
ラジオの2番目のオプションである「いいえ」を選択すると、正しく機能しません。表示されるべきでないときにエラーメッセージが表示されます。
ラジオの最初のオプションである「はい」を選択すると、期待どおりに機能します。
JavaScriptでグループ内のすべての無線を取得し、そのグループ内の無線がチェックされているかどうかを確認するにはどうすればよいですか?
前もって感謝します。
調べる必要のあるフィールドを収集する関数: *また、これは、フィールドリストのデータを提供する上記のjsonスクリプトです*
var field = [], blankFields = [],
listText = [], listItem = [], fieldId = [], label = [];
function checkRequired(fieldList) {
for (var i = 0; i < fieldList.length; i++)
{
listText = fieldList[i];
listText = listText.substring(1, listText.length - 1);
listItem = listText.split("||");
fieldId = listItem[0];
label = listItem[1];
field = document.getElementById(fieldId);
if (visible(field) && blank(field)){
blankFields.push(label);
}
}
//return blankFields;
if (blankFields.length > 0) {
displayError(blankFields);
}
}