Проверка Js с помощью int и selectbox - PullRequest
0 голосов
/ 02 марта 2012

Я спрашиваю, как правильно проверить мою форму.

У меня есть selectBox (названный persorecepteur). Если выбранный пункт стоит 0, JS проверит 4 поля (все они целые числа, и я должен проверить количество цифр) (их имена - учреждение, банк, счет, ключ).

В конце формы у меня есть 2 поля, которые ДОЛЖНЫ быть проверены (двойное и текстовое)

Так вот что я сделал:

<script type="text/javascript">
function valider(){
    var ck_name = /^[A-Za-z0-9 ]{3,20}$/;
        var ck_double = /^\d{3}\.\d{2}$/;


        var value = "0";
        if (myForm.persorecepteur.options[myForm.persorecepteur.selectedIndex].value == value ){

            // mist be 14701
            value = "14701";
            if (document.myForm.stablishment.value != value ) {
                document.myForm.establishment.style.backgroundColor="red";
        alert("Must be 14701");
                return false;
            }
            value = "00000";
            if (document.myForm.bank.value != value ) {
                document.myForm.bank.style.backgroundColor="red";
        alert("Must be 00000");
                return false;
            }

            if (document.myForm.account.value.length() != 11 ) {
                document.myForm.account.style.backgroundColor="red";
        alert("You must enter 11 digits");
                return false;
            }

            if (document.myForm.key.value.length() != 2 ) {
                document.myForm.key.style.backgroundColor="red";
        alert("You must enter 2 digits");
                return false;
            }

        }


        if (!ck_double.test(document.myForm.amount.value)) {
        document.myForm.amount.style.backgroundColor="red";
                alert("You must enter the sum like that : abc.de ");
                return false;
            }
    if (!ck_name.test(document.myForm.description.value)) {
        document.myForm.description.style.backgroundColor="red";
        return false;
            }

        return true;
}
</script>

Но сначала я не должен делать "ценность", не так ли? Могу ли я проверить длину, как я сделал с .value.length ()?

Спасибо за помощь, я новичок в JS ...

EDIT

<form name="myForm" action="performtransfert" method="POST" onsubmit="return valider();">

        <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr>
            <td>Selectionnez un compte en banque a debiter : </td>
            <td>
                <SELECT name="debiteur" size="1">

                    <option value="4">compte facturier (Current acount) - 100.0</option>

                    <option value="7">livret vert (Spare acount) - 1379.98</option>

                </SELECT>
            </td>
        </table>
        <br /><br />

        <table width="100%" border="1" cellspacing="0" cellpadding="0">
    <tr>
            <td><SELECT name="persorecepteur" size="1">
                    <option value="0">Selectionnez l'un de vos comptes si c'est le destinataire

                    <OPTION value="4">compte facturier (Current acount) - 100.0</OPTION>

                    <OPTION value="7">livret vert (Spare acount) - 1379.98</OPTION>

                </SELECT>
                <br /><br />
                Sinon, veuillez remplir le BBAN : <INPUT type=text name="establishment" size="5"> <INPUT type=text name="bank" size="5"> <INPUT type=text name="account" size="13"><INPUT type=text name="key" size="1"> 
            </td>
        </tr>
        </table>



        <br /><br />

        <table width="100%" border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td>Somme à verser : </td>
                <td><INPUT type=text name="amount" size="6"></td>
                <td>Desctiption : </td>
                <td><INPUT type=text name="description" size="45"></td>
            </tr>
        </table>

        <br /><br />
        <input type="submit" value="Valider le payement" />

    </form>

1 Ответ

0 голосов
/ 02 марта 2012

Полагаю, вы спрашиваете, нужно ли объявлять значение переменной в вашем вопросе But first I don't have to make "value" isn't it??Нет, вам не нужно, вы должны иметь возможность сравнивать само фактическое значение, например: document.myForm.bank.value == "0"

И да, вы можете проверить длину с помощью document.myForm.account.value.length, а не document.myForm.account.value.length()

Я бы порекомендовал вам начать использовать (изучение) проверки JQuery.Это делает вещи намного проще и аккуратнее ...

Следующая простая проверка jQuery будет работать для вашей формы ...

$(document).ready(function(){

    $("#myForm").validate({
        rules: {
            amount: {
                required: true,
                number: true
            },
            description: {
                required: true
            },
            establishment: {
                required: function(element) {
                    return $("#persorecepteur").val() == '0'
                },
                number: true
            },
            bank: {
                required: function(element) {
                    return $("#persorecepteur").val() == '0'
                },
                number: true
            },
            account: {
                required: function(element) {
                    return $("#persorecepteur").val() == '0'
                },
                number: true
            },
            key: {
                required: function(element) {
                    return $("#persorecepteur").val() == '0'
                },
                number: true
            }

        },
        messages: {
            amount: {
                required: "Needs entry",
                number: "only numbers allowed"
            },
            description: "Needs entry",
            establishment: {
                required: "Have to enter",
                number: "only numbers allowed"
            },
            bank: {
                required: "Have to enter",
                number: "only numbers allowed"
            },
            account: {
                required: "Have to enter",
                number: "only numbers allowed"
            },
            key: {
                required: "Have to enter",
                number: "only numbers allowed"
            },
        }
    });


    $('#myForm').submit(function() {
        if($("#persorecepteur").val() == '0') {
            if($("#establishment").val() !="" && $("#establishment").val() != "14701") {
                alert("Establishment must be 14701");
                return false;
            } else if($("#bank").val() != "" && $("#bank").val() != "00000") {
                alert("Must be 00000");
                return false;
            } else if($("#account").val() != "" && $("#account").val().length != 11) {
                alert("You must enter 11 digits");
                return false;
            } else if($("#key").val() != "" && $("#key").val().length != 2) {
                alert("You must enter 2 digits");
                return false;
            } 
        }
    });
 });

Вы должны будете объявить идентификаторы для полей формы дляприведенный выше код для работы.

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