0

jQuery とフォーム バリデータ プラグインを使用していますが、以下に示す 1 つのページを除いて正常に動作します。

HTML:
<form method="POST" enctype="multipart/form-data" id="frmReg" class="form-horizontal" novalidate="novalidate">
                <input type="hidden" name="mode" id="mode" value="insert">
                <input type="hidden" name="fileName" id="fileName">
                <div class="control-group">
                    <label id="fileLabel" class="control-label">*File Name</label>
                    <div class="controls">
                        <input type="file" name="file" id="file" placeholder="Select file" required="required" class="valid">
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label">*Package Name</label>
                    <div class="controls">
                        <input type="text" name="id.appId" id="appId" placeholder="Type group ID" tabindex="0" class="valid">
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label">*Application Title</label>
                    <div class="controls">
                        <input type="text" name="appName" id="appName" placeholder="Type application name" class="valid">
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label">*Version</label>
                    <div class="controls">
                        **<input type="text" name="id.version" id="version" placeholder="Type version" tabindex="0" class="valid">**
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label">Description</label>
                    <div class="controls">
                        <textarea name="description" id="description" placeholder="Type description" class="valid"></textarea>
                    </div>
                </div>
                <div class="modal-footer">
                    <button aria-hidden="true" data-dismiss="modal" class="btn">Close</button>
                    <button class="btn btn-primary" type="submit">Submit</button>
                </div>
            </form>

JS: 
$("#frmReg").validate({
        ignore: "", //for hidden field
        rules: {
            version: {
                required: true,
                number: true
            }
        },
        messages: {
            version: {
                required: "Enter version number",
                number: "Decimal numbers only allowed."
            }
        }
    });

    **$("#frmReg").validate().element("#version");**

「バージョン」を入力名として使用すると機能しますが、サーバー側のフレームワークのため、「バージョン」ではなく「id.version」を入力名として使用する必要があります。しかし、名前を使用すると、特殊文字やアルファベットを入力しても、検証コードは常に true を返します。要素に id.version を引き続き使用するにはどうすればよいですか? あなたの答えをいただければ幸いです。

4

1 に答える 1

0

ドキュメントによると...

複雑な名前 (括弧、ドット) を持つフィールド

フォームが有効な JavaScript 識別子ではない名前を使用するフィールドで構成されている場合、 rules オプションを使用するときにそれらの名前を引用する必要があります

name含まれているドットを引用符で囲むだけです...

$("#frmReg").validate({
    ignore: "", //for hidden field
    rules: {
        'id.version': {
            required: true,
            number: true
        }
    },
    messages: {
        'id.version': {
            required: "Enter version number",
            number: "Decimal numbers only allowed."
        }
    }
});

動作デモ: http://jsfiddle.net/A2ZdL/

于 2013-11-26T16:05:25.100 に答える