0

これは単純だと思います(とにかくプラグインページによると)

しかし、私は成功せずにプラグインを使用しようとしています。これが私のフォームです:

<form id="mongoForm">
        <label for="skip">skip:</label> <input type="text" id="skip"
            style="width: 70px">
        <p />
        limit: <span id="limitLable" style="border: 0">1</span>
        <div id="limit" style="width: 250px"></div>
        <p />
        <label for="collection">collection: </label> <input type="text"
            id="collection">
        <p />
        <label for="sort">sort: </label> <input type="text" id="sort">
        <p />
        <label for="type">type: </label><select id="type">
            <option value="find" selected="selected">find</option>
            <option value="count">count</option>
        </select>
        <p />
        <label for="query">query: </label>
        <textarea rows="10" cols="80" id="query"></textarea>
        <input type="submit" value="execute" id="execute">
    </form>

そして私のjqueryスクリプト:

$(document).ready(function() {
    $.validator.addMethod("validJson", function(value, element) {
        try {
            var val = $.parseJSON(value);
            return true;
        } catch (e) {
            return false;
        }

    }, "Invalid JSON string");
    $("#mongoForm").validate({
        rules : {
            collection : {
                required : true
            },
            query : {
                validJson : true
            }
        },
        submitHandler : function(form) {
            queryServer();
        }
    });

しかし、検証は機能していません。入力に ​​class="required" を追加すると、カスタム検証では機能しますが、カスタムの validJson メソッドでは機能しません。ただし、一部のフィールドは必須ではないため、これで問題は解決しません。オプションの値を検証するだけで済みます

アイデアはありますか?

4

1 に答える 1

1

一般的なガイドラインで説明されているように、名前属性が必要です。

入力要素には name 属性が必要です。検証プラグインはこれがないと機能しません。通常、name 属性と id 属性は同じ値にする必要があります。

したがって、マークアップは

<label for="collection">collection:</label> 
<input type="text" id="collection" name="collection">

于 2013-01-30T12:01:18.750 に答える