Проверка JQuery не работает на Iphone - PullRequest
1 голос
/ 23 февраля 2012

Я связал форму из монитора кампании с мобильным сайтом, и для проверки я использую jQuery validate. Все хорошо работает в настольных браузерах, но когда я проверяю на своем Iphone, проверки не работают.

Я не опыт использования JQuery, поэтому любая помощь будет высоко ценится.

Заранее спасибо!

Live Demo http://files.perfectday.gb.com/internal/stackoverflow/mobile-form/get-your-coupon.php

Моя проверка JQuery и форма следующие.

    <script type="text/javascript">
    $.validator.methods.equal = function(value, element, param) {
        return value == param;
    };
    $(document).ready(function(){
    $("#subForm").validate({
            rules: {
                math: {
                    equal: <?php echo $randomNumTotal; ?>   
                }
            },
            messages: {
                math: "Try again!!"
            }
        });
    });
    </script>


<!-- Form -->
    <form action="http://perfectday.createsend.com/t/j/s/nyuyh/" method="post" id="subForm">

        <div class="name">
            <label for="name">Name:<span>*</span></label><br>
            <input type="text" name="cm-name" id="name" size="25" class="required text-input" />
        </div>
        <div class="nyuyh-nyuyh">
            <label for="nyuyh-nyuyh">Email Address:<span>*</span></label><br>
            <input type="text" name="cm-nyuyh-nyuyh" id="nyuyh-nyuyh" size="25" class="required email text-input"/>
        </div>
        <div class="address1">
            <label for="Address 1">Address 1:<span>*</span></label><br>
            <input type="text" name="cm-f-juar" id="Address1" size="25" class="required text-input" />
        </div>
        <div class="address2">
             <label for="Address 2">Address 2:<span>*</span></label><br>
            <input type="text" name="cm-f-juaj" id="Address2" size="25" class="text-input required" />
        </div>
        <div class="city">
            <label for="City">City/town:<span>*</span></label><br>
            <input type="text" name="cm-f-juat" id="City" size="25"class="required text-input" />
        </div>
        <div class="postal">
            <label for="postal">Post code:<span>*</span></label><br>
            <input type="text" name="cm-f-juai" id="postal" size="25"class="required text-input" />
        </div>
        <div class="captcha">
            Enter the correct result<span>*</span><br>
            <input type="text" name="captchaImage" id="sum"  value="<?php echo $randomNum ?> + <?php echo $randomNum2 ?>" disabled="disabled" />
            <input type="text" name="math" id="math" maxlength="6" />
        </div>
    <input value="submit information" class="submit" type="image" src="images/trans.png" class="get-your-coupon-submit" alt="Submit" >
    <br>
    </form>

Ответы [ 2 ]

3 голосов
/ 27 марта 2012

У меня была такая же проблема на iPhone с jQuery версии 1.6.1+ и плагином Validations версии 1.9

Обходной путь - настроить плагин так, чтобы он не проверялся при отправке формы:

$("form").validate({
   onsubmit: false
});

Подтвердите форму и отправьте программно:

if( $("form").valid() ){
  // post validation code

  form.submit()
}
2 голосов
/ 02 апреля 2015

(3 года спустя обновление): я также обнаружил проблемы с iPhone и jQuery.validate. Хотя проверка применялась, первое поле не прокручивалось в поле зрения. Чтобы обойти это, я просто обновил свой метод .invalidHandler(), добавив в него:

$("foo").validate({
  invalidHandler: function(e, validator) {
    if(window.navigator.userAgent.match(/iphone/i)) {
      window.setTimeout(function() {
        $("html,body").animate({
          scrollTop: $(validator.errorList[0].element).offset().top
        });
      }, 0);
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...