Как проверить значения динамического массива строк в JavaScript - PullRequest
0 голосов
/ 30 мая 2011

пл.Посоветуйте мне, как мне проверить значения массива в JavaScript.Я публикую код, который я сейчас использую.проблема в том, что даже после заполнения всех значений, я все еще продолжаю получать сообщение об ошибке проверки.пл.посоветуйте мне, где я ошибаюсь

function chkdate() {
    var x = document.forms["main"]["date"].value;
    if (x == null || x == "") {
        document.forms["main"]["date"].focus();
        document.forms["main"]["date"].style.background = 'red';
        alert("Date Cannot be empty");
        return false;
    }
}

function chkempty() {
    var len = document.forms["main"]["item[]"].length;
    if (len == undefined) {
        var ic = document.forms["main"]["item[]"].value;
        var iq = document.forms["main"]["qty[]"].value;
        var ip = document.forms["main"]["price[]"].value;
        if (ic == null || ic == "") {
            document.forms["main"]["item[]"].focus();
            document.forms["main"]["item[]"].style.background = 'red';
            alert("Item Cannot be empty");
            return false;
        }
        if (iq == null || iq == "") {
            document.forms["main"]["qty[]"].focus();
            document.forms["main"]["qty[]"].style.background = 'red';
            alert("Qty Cannot be empty");
            return false;
        }
        if (ip == null || ip == "") {
            document.forms["main"]["price[]"].focus();
            document.forms["main"]["price[]"].style.background = 'red';
            alert("Price Cannot be empty");
            return false;
        }
    } else for (i = 0; i < len; i++) {
        var ica = document.forms["main"]["item[]"][i].value;
        var iqa = document.forms["main"]["qty[]"][i].value;
        var ipa = document.forms["main"]["price[]"][i].value;
        if (ica == null || ica == "") {
            document.forms["main"]["item[]"][i].focus();
            document.forms["main"]["item[]"][i].style.background = 'red';
            alert("Item Cannot be empty");
            return false;
        }
        if (iqa == null || iqa == "") {
            document.forms["main"]["qty[]"][i].focus();
            document.forms["main"]["qty[]"][i].style.background = 'red';
            alert("Qty Cannot be empty");
            return false;
        }
        if (ipa == null || ipa == "") {
            document.forms["main"]["price[]"][i].focus();
            document.forms["main"]["price[]"][i].style.background = 'red';
            alert("Price Cannot be empty");
            return false;
        }
    }
}

другие подробности: -

имя формы: main элемент поля ввода, кол-во и цена - это динамические строки в зависимости от требований пользователя.спасибо всем.

1 Ответ

0 голосов
/ 27 ноября 2012

Я предлагаю вам в качестве первого пункта использовать JQuery вместе с плагином validate.

Тогда для вашего случая следуйте этому примеру, который прекрасно работает для меня:

$("#testform").validate({
    rules: {'qty[]': {required: true,minlength: 1},
    //other rules here
},
messages: {
    'qty[]': "Select at least one qty",
    //other custom error msgs go here
}
});

<input name="qty[]" id="1" value="1" type="checkbox" /> 
<input name="qty[]" id="2" value="2" type="checkbox" /> 
<input name="qty[]" id="3" value="3" type="checkbox" /> 

N.B. что имя поля значений массива должно быть указано в кавычках ('qty []') иначе вы получите ошибку js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...