0

フォームがあり、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;
}

}

問題は、値を持たないすべてのテキストフィールドまたはラジオボタンをカウントしたいということです。したがって、境界線が赤に設定されるたびに値がありません。その場合、コードのようにカウントしたいと思います。次に、コードがすべてのテキストボックスとラジオボタンを通過した後、それらのいずれかが失敗したかどうかを確認します。しかし、コードの最後にあるように数えることはできません。それは常に真実であると言われています。これを行うためのより良い方法があれば?または、正しい方法で行っていますが、構文が間違っているか何かがありますか?

4

1 に答える 1