2012-02-23 13 views
1

キャンペーンモニターのフォームをモバイルサイトにリンクしていて、検証のためにjQueryの検証を使用しています。 すべてはデスクトップブラウザ上でうまく動作しますが、私が自分のiPhoneをチェックすると、検証は機能しません。iphoneでjQueryの検証が機能していません

私はJQueryを使用した経験ではないので、どんな助けでも大歓迎です。

ありがとうございます!

ライブデモ 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> 
+0

私の謝罪です。私はします。ありがとうございます。 – perfectday

+0

「検証が機能しない」と言ったら、どういう意味ですか?私はiPhoneとシミュレータの両方でこれを試してみましたが、フォームを送信してもjavascriptエラーは発生しません。数学の問題の隣には「やり直してください」というテキストもあります。 iPhoneでSafariのデバッグコンソールを有効にするとよいでしょう。設定 - > Safari - >詳細 - >デバッグコンソールで確認できます。 –

+0

妥当性検査では、正しい情報が入力されるまで送信者が送信を許可しない機能を意味しました。この問題は、jquery-1.7.1がうまく動作しないという嘘でした。なぜ完全にわからない。 JQuery v1.3.2が今私のために働いているようだ。 – perfectday

答えて

3

私は回避策を提出し、フォーム上で検証しないようにプラグインを設定することでしたバージョン1.9

プラグインjQueryのバージョン1.6.1+と検証では、iPhone上で同じ問題を持っていた:

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

検証フォームとは、プログラム提出:

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

    form.submit() 
} 
+0

"プログラムでサブミットしてください"という部分はどこに置いていますか?私はあなたがどこでも変数を "フォーム"にアクセスすることができないので(単にsubmitHandler:function(form))、頼んでいます。そして、私が "$( 'form')。submit()"としてそれをやろうとすると、再発問題があります。 – PolGraphic

2

(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); 
    } 
    } 
}); 
+0

私はマスクメソッドでJqueryの同様の問題があります。jQuery( '#zip')。マスク('00 -000 ');入力テキストをマスクするコードです。 この物はアンドロイド上で動作しますが、 ' - '文字列を追加した後はiosで反転します。 もし私が00-123を入力したいのであれば、それは00-321として書かれています。 この小さな問題について助けてくれますか? –

関連する問題