今天是我第一次尝试使用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”
有人可以指出我正确的方向来弄清楚我做错了吗?
答案 0 :(得分:1)
有一些问题:
validate
上调用了#box-registration
,这在您的示例标记中不存在。rules
选项应键入表单元素名称。文件不清楚;他们似乎暗示规则可以根据类名自动匹配,但我不认为这可以按照你的方式完成。我已创建this Fiddle以显示使用这些更正的验证。