Ошибка функции JavaScript и jQuery - PullRequest
0 голосов
/ 06 декабря 2010

Я делаю общую функцию проверки текста с помощью jQuery. Я сделал текст функции и передал в функцию идентификатор, требование, выражение, смещение, предел. Я сделал это, чтобы помочь мне легко запустить функцию при одном изменении ввода и при отправке всей формы. Я сделал функцию, но не могу запустить ее.

var Val = {
    'text' : function(event, ident,req,regexp,offset,limit) {
        var ele = $(document.getElementById(ident));

        if(req == 1 && ele.val().length < 1) {
            Val.errors = true;
            $("#"+ident+"Error").html("Please enter your " + ele.attr("title"));
            $("#"+ident+"Error").show("fast");
        } else if(ele.val().length <= offset || ele.val().length > limit) {
            Val.errors = true;
            $("#"+ident+"Error").html(ele.attr("title") + " should be between " +offset+ " & " +limit+ " charecters long");
            $("#"+ident+"Error").show("fast");
        } else if(regexp != null) {
            switch (regexp) {
                case 'text':
                    var regEx = /^([a-zA-Z]+)$/; break;
                case 'number':
                    var regEx = /^([0-9]+)$/; break;
                case 'email':
                    var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; break;
                case 'date':
                    var regEx = /^([123]0|[012][1-9]|31)-(0[1-9]|1[012])-(19[0-9]{2}|2[0-9]{3})$/; break;
                case 'alphanum':
                    var regEx = /^([a-zA-Z0-9._-]+)$/; break;
                default:
                    var regEx = /^([a-zA-Z0-9._-]+)$/; break;
            }
            if(!regEx.test(ele.val())) {
                Val.errors = true;
                $("#"+ident+"Error").html(ele.attr("title") + " is not valid");
                $("#"+ident+"Error").show("fast");
            }
        }
    },

    'send' : function (){
        if(!Val.errors) {
            $('#form').submit();
        }
    }
}

Код вызова функции:

$(document).ready(function(){
    $('#send').click(function(){
        Val.text('test', 1, 'email', 10, 50);
        Val.send(); 
    });

    $('#test').bind('change', Val.text);
    $('#test').trigger('change', ['test', 1, 'email', 10, 50]);
});

Я знаю, что еще не использовал выражения, но однажды увижу, как оно работает.

Ценю всю помощь ...

Спасибо!

1 Ответ

0 голосов
/ 11 декабря 2010

Я заставил это работать. Как только скрипт заработал правильно, триггер не потребовался. Мне удалось просто позвонить просто внутри события изменения.

$('#emailID').change(function(){
    Val.text('emailID', 1, 'email', 10, 100);
});

Спасибо всем за помощь в любом случае.

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