0

我有一个小的 jQuery 函数,它根据邮政编码输入字段从服务器收集数据:

$(document).ready(function(){
  $('#id_zipcode').keyup(function() {
    var selected = this.value;
    if (selected.length > 3) {
        $.getJSON(get_zip_factors_url, {
            zipcode: selected
        }, function(env_data, jqXHR) {
            $('#snow_fall').html(env_data[0].snow);
            $('#wind_speed').html(env_data[0].wind);
        });
    }
  }).keyup();
});

这现在工作正常。#snow_fall但是,如果用户删除字符,则呈现的值将#wind_speed持续存在。当用户删除导致服务器没有返回有效数据的字符时,有什么方法可以注册此删除并将值恢复为“不可用”字符串?

非常感谢任何帮助。

4

2 回答 2

1

我可能只是这样修改响应:

$.getJSON(get_zip_factors_url, {
            zipcode: selected
        }, function(env_data, jqXHR) {
            if(env_data[0].valid == true )
            {
                $('#snow_fall').html(env_data[0].snow);
                $('#wind_speed').html(env_data[0].wind);
            } else {
                $('#snow_fall').html('Not Available');
                $('#wind_speed').html('Not Available');
            }
        });

或者,您可以只跟踪输入的 zip 或全局长度,只需检查即可,而无需经历进行 ajax 调用的麻烦。

于 2012-11-08T19:32:32.533 回答
1

如果您正在查找邮政编码值,为什么不更改为 if(selected.length == 5),然后使用 if 语句的 else 将 snow_fall 和 wind_speed 设置为“不可用”?

于 2012-11-08T19:34:17.697 回答