1

jQueryvalidateを使用しているフォームがあります。フォームは、IEを除くすべてのブラウザーで完全に機能します(IEのバージョンに関係なく)。私はそれを機能させることについて他のいくつかの投稿を読みましたが、彼らは助けにはなりませんでした。それらのいくつかは、末尾のコンマを取り除くことに言及しました。私はそれを試しましたが、うまくいきませんでした。どんな助けでも大歓迎です。

これが私の検証コードです:

<script>
$(document).ajaxStop(function(){
  setTimeout("window.location = 'index.php'",60000);
});
        $.validator.addMethod("zero", function(input, element) {
        return ! input || input.match(/^[0]/);
}, "This field must start with a zero");
        $("#studentid").validate({
            debug: false,
            rules: {
                id: {required: true, zero: true}
            },
            messages: {
                id: {required: "Please enter the student's ID number.", zero: "Student ID must start with a zero."}
            },                 
            submitHandler: function(form) {

      $.ajax({
          url: 'tutoring.php',
          type: 'POST',
          data: $("#studentid").serialize(),         
          success: function(data) {
        $("#id").val("");
        $("#results").empty();
        $("#results").append(data);
        }
      });

      return false;
   }
});

</script>

これが私のHTmLです。

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<style type="text/css">
label.error {
  width: 350px;
  display: inline;
  color: red;
}
</style>
</head>

<div align="center">
  <h1>Welcome to the Ojeda Middle School Tutoring Website</h1>
</div>
<p>You can use this page to view tutoring information for the current week.</p>
<p>Please enter a student ID number below then click Submit.</p>
<form id='studentid' class='studentid' action='' method='get'>
  <p>
    <label for="id">Student ID:</label>
    <input type="text" name="id" id="id" /><br>
    <button id='submit' class='submit'>Submit</button>
  </p>
</form>
<p>
<div id="results"></div>

検証コードをできるだけ単純化してみました。単純化した後でも、IEを除くすべてのブラウザーで機能しました。

簡略化された検証コード:

<script>
$(document).ajaxStop(function(){
  setTimeout("window.location = 'index.php'",60000);
});

        $("#studentid").validate({
            debug: false,
            rules: {
                id: {required: true}
            },
            messages: {
                id: {required: "Please enter the student's ID number."}
            },                 

});

</script>
4

2 に答える 2

4

IEは、余分なコンマを使用するとうまく機能しません。

messagesプロパティの後に余分なコンマがあることに注意してください。勝つためにそれを削除します。

$("#studentid").validate({
        debug: false,
        rules: {
            id: {required: true}
        },
        messages: {
            id: {required: "Please enter the student's ID number."}
        },  <--------------------
于 2013-02-21T15:40:27.200 に答える
4

あなたのコード:

$.validator.addMethod("zero", function(input, element) { ... });
$("#studentid").validate({
    // options
});

コードをDOM対応でラップする必要があり、以下のデモのように機能します。

$(document).ready(function() {

    $.validator.addMethod("zero", function(input, element) { ... });
    $("#studentid").validate({ // <-- initialize the plugin once
        // options
    });

});

作業デモ: http: //jsfiddle.net/HNK6w/

ご覧のとおり、Windows7のInternetExplorer9で動作しています...

ここに画像の説明を入力してください

于 2013-02-21T15:50:39.583 に答える