проверка JQuery работает в некоторых браузерах, но не в других - PullRequest
0 голосов
/ 21 декабря 2010

Почему это работает для некоторых людей, а не для других? Другие просто нажимают на кнопку, и это не работает. Он начал делать это после того, как я добавил метод проверки nospaces. Будем очень благодарны за любые предложения.

<form method="post" action="#" id="client_form" class="order-form">
<input type="text" id="user_name" name="user_name" class="req nospaces" />
</form>
 <button id="client_next_btn"><?php echo($content->getString('order')); ?></button>
<script type="text/javascript">

$(function ()
{
jQuery.validator.addClassRules('req', { required: function (el) { return $(el).is(':visible') } });

var nums = ['0','1','2','3','4','5','6','7','8','9'];
var letters = ['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'];
var alphanumeric = nums.concat(letters);

jQuery.validator.addMethod("nospaces", function(value, element) {
    var val = value.split("");
    var bool = true;
    for (var i in val)
    {
        if (jQuery.inArray(val[i], alphanumeric) == -1)
        {
            bool = false;
            break;
        }
    }
    return bool;
}, "* <?php echo ($content->getString('no_spaces')); ?>");

$('#client_form').validate();
$('#client_next_btn').click(function ()
{
    $('#client_message').empty();

    if ($('#client_form').validate().form())
    {
                alert('works');
            }
    }

}

Ответы [ 2 ]

1 голос
/ 21 декабря 2010

В качестве подсказки вы можете избавиться от этого:

jQuery.validator.addClassRules('req', { 
  required: function (el) { return $(el).is(':visible') } 
});

и использовать встроенный класс required, просто добавьте параметр ignore на ваш .validate() вызов для исключения :hidden элементов, например:

$('#client_form').validate({ ignore: ':hidden' });
0 голосов
/ 21 декабря 2010

Сразу после того, как я отправил вопрос, я понял ответ - addMethod должен идти вместе с addClassRules, а не сам по себе

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