繁体   English   中英

自定义jQuery.validator规则出现问题

[英]Problem with custom jQuery.validator rule

我对此代码有疑问,似乎无法解决:

$.validator.addMethod('street_address', function (value, element) {
  var address  = value + ', ' + $(element).parent().parent().find("#venue_city_id option:selected").text(),
      geocoder = new google.maps.Geocoder(),
      that     = this;
  geocoder.geocode({address: address}, function (results, status) {
    return that.optional(element) || status == google.maps.GeocoderStatus.OK;
  });
}, 'invalid address');

它可以使不正确的地址(Google无法对其进行地理编码的地址)无效。 问题是即使返回true,我仍然会收到“无效地址”。 关于可能是什么问题的任何想法?

您从内部回调返回

geocoder.geocode({address: address}, function (results, status) {
    return that.optional(element) || status == google.maps.GeocoderStatus.OK;
});

不是来自验证器功能。

此外, geocoder.geocode执行,我相信,AJAX的异步查询,所以你不能就能够告诉你离开时,验证您的位置是否是“geocodeable”。 在jQuery验证中,应该有一个针对此类情况的特定验证器,称为remote或诸如此类,该验证器基于ajax查询的结果进行验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM