Evento validateForm

Preciso fazer com que o formulário não seja enviado quando o "txtNumeroInvoice" possuir menos de 9 dígitos. Já testei de algumas formas e o formulário passa direto.

Alguém sabe alguma forma?


function validateForm(form) {
    var inicio    = 4;
    var correcao  = 17;
    var atividade   = parseInt(getValue("WKNumState"));
    var acaoUsuario = getValue("WKCompletTask");

    if ((atividade == inicio || atividade == 0 || atividade == correcao) && (acaoUsuario == "true")) {
        // if (form.getValue("txtNumeroInvoice") < 9)
        if ((form.getValue("txtNumeroInvoice")).length < 9) {
            throw "A invoice precisa ter 9 dígitos";
        }

        // Funcionando - Ok
        if ((form.getValue("txtNumeroInvoice")) == "") {
            throw "A invoice não pode ser nula";
        }
    }
}

Marcella, Precisei fazer algo parecido e resolvi no js com um campo auxiliar mesmo =/

input type="text" name="txtNumeroInvoice" id="txtNumeroInvoice"

input type="hidden" name="txtNumeroInvoiceAuxiliar" id="txtNumeroInvoiceAuxiliar"

$("#txtNumeroInvoice").keyup(function() { $("#txtNumeroInvoiceAuxiliar").val($("#txtNumeroInvoice").val().length); });

Aí no validateForm, fiz a comparação com o auxiliar! Espero que te ajude! =)

Obg Renata, dessa forma funcionou perfeitamente.

Oi Marcella!

O método "form.getValue" retorna o valor, em string, de um campo.

Como o "form" é um objeto Java, você precisa utilizar a função length() para verificar o tamanho do conteúdo do campo. Se fosse JavaScript você poderia utilizar a propriedade length sem problemas!

No seu caso, você não precisa de campo adicional, basta utilizar:


if (form.getValue("txtNumeroInvoice").length () < 9) {
    throw "A invoice precisa ter 9 dígitos";
}

Abs,

Marcos