jQuery验证在Iphone上不起作用

jQuery验证在Iphone上不起作用,jquery,forms,mobile,jquery-validate,Jquery,Forms,Mobile,Jquery Validate,我已经将一个表单从campaign monitor链接到一个移动站点,我正在使用jQuery验证进行验证。 所有这些都可以在桌面浏览器上正常工作,但当我在Iphone上检查时,验证不起作用 我没有使用JQuery的经验,因此非常感谢您的帮助 提前谢谢你 现场演示 我的验证JQuery和表单如下所示 <script type="text/javascript"> $.validator.methods.equal = function(value, element,

我已经将一个表单从campaign monitor链接到一个移动站点,我正在使用jQuery验证进行验证。 所有这些都可以在桌面浏览器上正常工作,但当我在Iphone上检查时,验证不起作用

我没有使用JQuery的经验,因此非常感谢您的帮助

提前谢谢你

现场演示

我的验证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>

$.validator.methods.equal=函数(值、元素、参数){
返回值==param;
};
$(文档).ready(函数(){
$(“#子窗体”).validate({
规则:{
数学:{
相等:
}
},
信息:{
数学:“再试一次!!”
}
});
});
姓名:*
电子邮件地址:*
地址1::
地址2::
城市/城镇:*
邮政编码:*
输入正确的结果*

我在iPhone上遇到了同样的问题,jQuery版本1.6.1+和Validations插件版本1.9

解决方法是将插件配置为在表单提交时不进行验证:

$("form").validate({
   onsubmit: false
});
验证表单并以编程方式提交:

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

  form.submit()
}

我在iPhone上遇到了同样的问题,jQuery版本1.6.1+和Validations插件版本1.9

解决方法是将插件配置为在表单提交时不进行验证:

$("form").validate({
   onsubmit: false
});
验证表单并以编程方式提交:

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

  form.submit()
}
(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);
    }
  }
});
(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);
    }
  }
});

我道歉。我会的。谢谢你的时间。当你说“验证不起作用”是什么意思?我用iPhone和模拟器都试过了,提交表单不会导致任何javascript错误。数学题旁边还有一个“重试”文本。在iPhone上打开Safari的调试控制台通常是好的。它可以在设置->Safari->高级->调试控制台中找到。我所说的验证是指在输入正确信息之前不允许发件人提交的功能。问题在于jquery-1.7.1不起作用。不完全清楚原因。jQueryV1.3.2现在似乎适合我了。很抱歉。我会的。谢谢你的时间。当你说“验证不起作用”是什么意思?我用iPhone和模拟器都试过了,提交表单不会导致任何javascript错误。数学题旁边还有一个“重试”文本。在iPhone上打开Safari的调试控制台通常是好的。它可以在设置->Safari->高级->调试控制台中找到。我所说的验证是指在输入正确信息之前不允许发件人提交的功能。问题在于jquery-1.7.1不起作用。不完全清楚原因。jQueryV1.3.2现在似乎适合我。您将“以编程方式提交”片段放在哪里?我这样问是因为您在任何地方都无法访问“form”变量(仅在submitHandler:function(form)中)。如果我尝试以“$('form').submit()”的形式执行,则会出现重复问题。您将“以编程方式提交”片段放在何处?我这样问是因为您在任何地方都无法访问“form”变量(仅在submitHandler:function(form)中)。如果我尝试以“$('form').submit()”的形式执行此操作,则会出现重复出现的问题。jQuery('#zip').mask('00-000');是我用来屏蔽输入文本的代码。这个功能在android上运行,但在ios中添加“-”字符串后会反转。如果我想输入00-123,在ios中写为00-321,你能帮我解决这个小问题吗。jQuery('#zip').mask('00-000');是我用来屏蔽输入文本的代码。这个功能在android上运行,但在ios中添加“-”字符串后会反转。如果我想输入00-123,在ios中写为00-321,你能帮我解决这个小问题吗。