2

私はいくつかの簡単な検証を実行しようとしています.JavaScript & jQuery, The Missing Manualという本の指示に従っています. 私のコードは単にこれです:

<script src="~/Scripts/jquery-1.6.2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>

<form> form code here </form>

<script>
    $(document).ready(function() {
        $('#vaporizerForm').validate();
    });
</script>

そして、私はこのエラーが発生しています:

/Scripts/jquery-1.6.2.js の 1039 行目、15 列目の未処理の例外

0x800a01b6 - Microsoft JScript ランタイム エラー: オブジェクトはこのプロパティまたはメソッドをサポートしていません

$(document).ready 部分を削除してこれを行うと、次のように動作します。

<script>
        $('#vaporizerForm').validate();
</script>

$(document).ready() 部分が機能しない理由は何ですか?

編集 -- jQuery コール スタックとコード

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

編集 - ビュー内のコード全体

@model IEnumerable<DistributorManagement.Models.Vaporizer>

@{
    ViewBag.Title = "Vaporizer";
}
@{
    var grid = new @WebGrid(
        source: Model,
        rowsPerPage: 10);
}

<script src="~/Scripts/jquery-1.6.2.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.js" type="text/javascript"></script>

<script>
    $(document).ready(function () {
        $('#vaporizerForm').validate();
    });
</script>

<form action="#" method="post" name="vaporizerForm" id="vaporizerForm">
    <div>
        <label>Manufacturer</label>
        <input name="manufacturer" type="text" class="required" />

        <label>BuildDate</label>
        <input name="buildDate" type="text" class="required date" />

        <label>Rating</label>
        <input name="rating" type="text" class="required number" />
    </div>
    <div>
        <input type="submit" name="submit" value="Submit" />
    </div>
</form>

<br />
<h1>Vaporizer Info</h1>
<div class="webgrid-wrapper">
    <div id="grid">
        @grid.GetHtml(
            tableStyle: "webgrid",
            headerStyle: "webgrid-header",
            footerStyle: "webgrid-footer",
            alternatingRowStyle: "webgrid-alternating-rows",
            columns: grid.Columns(
                grid.Column("Id", "ID"),
                grid.Column("Manufacturer"),
                grid.Column("Status"),
                grid.Column("BuildDate", "Build Date"),
                grid.Column("Rating")))
    </div>
</div>
4

3 に答える 3

0

これを試してください:

<script type="text/javascript" src="~/Scripts/jquery.validate.js"></script>

-- 編集 --

$(document).ready(.......) をページの下部に配置します。

これは、IE の一部のバージョンで、ページが長すぎる場合に発生します.... body の前に配置してください。

于 2012-07-10T19:59:06.537 に答える
0

の前に検証スクリプトを配置し<form>ます。

<script src="~/Scripts/jquery-1.6.2.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script>
  $(document).ready(function(){
    $('#vaporizeForm').validate();
  });
</script>

<form> form code here </form>

としてフィドルを次に示します。

于 2012-07-10T20:23:21.193 に答える