jQuery Validation插件没有捕获错误

时间:2012-03-02 01:17:28

标签: jquery validation

今天是我第一次尝试使用jQuery Validation插件。我的表格用于验证GPS坐标。

以下是我的规则和信息:

$(document).ready(function() {
    // validate form when called
    var validator =$("#box-registration").validate({
        rules: {
            latitude: {
                min: 0,
                max: 90,
                number: true
                },

            longitude {
                min: 0,
                max: 180,
                number: true
                },

            geo_dms {
                min: 0,
                max: 59,
                number: true
                }
            },
        messages: {
            latitude: "Latitude must be between 0 and 90",
            longitude: "Longitude must be between 0 and 180",
            geo_dms: "Degree minutes and seconds must be between 0 and 59"
            }
        });
    });

以下是我要验证的表单的一部分。我正在尝试对元素“geo-lat-dd”和“geo-lon-dd”应用验证:

        <div id="geo-format-dd">
            <dl>
            <dt><label class="labelstandard">Latitude</label></dt>
            **<dd><input  id="geo-lat-dd" name="geo-lat-dd" type="text" class="latitude textinput100 nonewrow"/></dd>**
            <dd class="nonewrow">
                <input type="radio" name="latDD" id="latDDN" checked="checked" value="N" class="nonewrow" /><label class="nonewrow" for="latDDN">N</label>
                <input type="radio" name="latDD" id="latDDS" value="S" class="nonewrow" /><label class="nonewrow" for="latDDS">S</label>
            </dd>
            </dl>

            <dl class="newrow">
            <dt><label class="labelstandard">Longitude</label></dt>
            **<dd><input id="geo-lon-dd" name="geo-lon-dd" type="text" class="longitude textinput100 nonewrow" /></dd>**
            <dd class="nonewrow">
                <input type="radio" name="lonDD" id="latDDW" checked="checked" value="W" class="nonewrow" /><label class="nonewrow" for="lonDDW">W</label>
            </dd>
            </dl>
        </div>

这两个元素应用了“纬度”和“经度”类,我的验证插件规则包括那些类(还有一些度数 - 分钟 - 秒,所以我试图重新使用这些类而不是使用的ID)。

当我在字段中验证类型为9999的表单时,不会显示任何错误消息。使用Firebug,我已经介入并确认验证代码正在运行,但它没有返回任何异常。

在规则中,我还尝试在选择器前放置一个点,这会使页面崩溃,并将其用引号括起来,例如“.latitude”

有人可以指出我正确的方向来弄清楚我做错了吗?

1 个答案:

答案 0 :(得分:1)

有一些问题:

  1. 您在选择器validate上调用了#box-registration,这在您的示例标记中不存在。
  2. 您的rules选项应键入表单元素名称。文件不清楚;他们似乎暗示规则可以根据类名自动匹配,但我不认为这可以按照你的方式完成。
  3. 您的JavaScript有一些语法错误。具体来说,您在规则对象中缺少冒号。
  4. 我已创建this Fiddle以显示使用这些更正的验证。