jade版zipcodeapi的例子

时间:2015-08-09 18:12:46

标签: javascript node.js

尝试创建一个玉器版本来执行自动填充城市状态 https://www.zipcodeapi.com/Examples

script(type='text/javascript').
//<![CDATA[
$(function() {
    // IMPORTANT: Fill in your client key
    console.log("thing")
    var clientKey = "js-9qZHzu2Flc59Eq5rx10JdKERovBlJp3TQ3ApyC4TOa3tA8U7aVRnFwf41RpLgtE7";
    var cache = {};
    var container = $("#example1");
    var errorDiv = container.find("div.text-error");
    /** Handle successful response */
    function handleResp(data)
    {
        // Check for error
        if (data.error_msg)
            errorDiv.text(data.error_msg);
        else if ("city" in data)
        {
            // Set city and state
            container.find("input[name='city']").val(data.city);
            console.log(data.city);
            container.find("input[name='state']").val(data.state);
        }
    }
    // Set up event handlers
    container.find("input[name='zipcode']").on("keyup change", function() {
        // Get zip code
        var zipcode = $(this).val().substring(0, 5);
        if (zipcode.length == 5 && /^[0-9]+$/.test(zipcode))
        {
            // Clear error
            errorDiv.empty();
            // Check cache
            if (zipcode in cache)
            {
                handleResp(cache[zipcode]);
            }
            else
            {
            //Build url
            var url = "https://www.zipcodeapi.com/rest/"+clientKey+"/info.json/" + zipcode + "/radians";
                // Make AJAX request
                $.ajax({
                    "url": url,
                    "dataType": "json"
                }).done(function(data) {
                    handleResp(data);
                    // Store in cache
                    cache[zipcode] = data;
                }).fail(function(data) {
                    if (data.responseText && (json = $.parseJSON(data.responseText)))
                    {
                        // Store in cache
                        cache[zipcode] = json;
                        // Check for error
                        if (json.error_msg)
                            errorDiv.text(json.error_msg);
                    }
                    else
                        errorDiv.text('Request failed.');
                });
            }
        }
    }).trigger("change");
});
//]]>
div#example1
label Zip:
input(type='text', name='zipcode', value='')
label City:
input(type='text', name='city', value='')
label State:
input(type='text', name='state', value='')

我收到以下错误,不知道为什么会出错:

$ is not defined

有什么想法吗?这是从原始javascript的转换,所以我不确定我在转换中做错了什么。谢谢!

1 个答案:

答案 0 :(得分:0)

始终听取您的错误消息;他们通常是对的。 $未定义。你是否在一个更高级别的模板中包含了jQuery(只是猜测),这是一个子模板?如果没有,$ is undefined是来自javascript解释器的有效消息。