フォームがあり、jQuery で作成したメソッド validateForm() で検証したい:
function validateForm() {
var count = 0;
$("input[type='text']").each(function () {
if ($(this).id == "AbdominalCircumferencetext") {
if ($("#AbdominalCircumferencetext").val() == "" || ($("#AbdominalCircumferenceradio").val().length == 0)) {
($("#AbdominalCircumferencetext").css("border", "2px solid red"));
($("#AbdominalCircumferenceradio").css("border", "2px solid red"));
count++;
}
}
if ($(this).val() == "") {
$(this).css("border", "2px solid red");
count++;
}
else {
$(this).css("border", "");
}
});
var checkboxGroupNames = [];
$(':radio').each(function () {
var nameOfCheckBoxGroup = $(this).attr('name');
var nameExistInList = jQuery.inArray(nameOfCheckBoxGroup, checkboxGroupNames);
if (nameExistInList < 0) {
checkboxGroupNames.push(nameOfCheckBoxGroup);
}
});
var counter = 0;
var counts = 0;
$.each(checkboxGroupNames, function () {
if ( $("input[name='" + checkboxGroupNames[counter] + "']:checked").length === 0) {
$("#" + checkboxGroupNames[counter] + "radio").css("border", "2px solid red");
counts++;
}
else {
$("#" + checkboxGroupNames[counter] + "radio").css("border", "");
}
counter++;
});
if (counts == 0 && count == 0) {
return true;
} else {
alert("Du måste fylla i alla rutorna samt välja något alternativ av radioknapparna!");
return false;
}
}
問題は、値を持たないすべてのテキストフィールドまたはラジオボタンをカウントしたいということです。したがって、境界線が赤に設定されるたびに値がありません。その場合、コードのようにカウントしたいと思います。次に、コードがすべてのテキストボックスとラジオボタンを通過した後、それらのいずれかが失敗したかどうかを確認します。しかし、コードの最後にあるように数えることはできません。それは常に真実であると言われています。これを行うためのより良い方法があれば?または、正しい方法で行っていますが、構文が間違っているか何かがありますか?