0

我正在使用 jQuery 和表单验证器插件,它工作正常,除了下面显示的一页。

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 标识符的名称的字段,则在使用规则选项时必须引用这些名称

只需在包含的点周围加上引号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 回答