【问题标题】:If / Else jQuery to parse against a list of zip codesIf / Else jQuery 解析邮政编码列表
【发布时间】:2013-05-28 03:20:42
【问题描述】:

我正在尝试编写一个报价估算器,它利用一组邮政编码作为服务区。邮政编码列表相当广泛,因此我不知道拥有外部源(例如 CSV)是否更好或根本不是一种选择。

我希望人们输入他们的邮政编码,如果它在列表中,他们将获得价格计算器选项。

如果他们的邮政编码不在列表中,则应显示“请致电获取更多信息”的消息

我现在有点像 frankensteining 代码,但这就是我所拥有的:

$(function(){
var zipCodes = ['92056', '90210', '92121', '92101','19148'];
$('#id_div_one, #id_div_two').hide();
if(jQuery.inArray(zipCodes) > -1) {
$('#id_div_one').css('display', 'inline');
} else {
$('#id_div_two').css('display', 'inline');
}
return false;
});

然后这是 div:

<form  id="zip_form">
Zip Code: <input type="text" name="zipcode" id="id_zip_code"><input type="submit"    
value="Submit">
</form>

<div id="id_div_one">[CP_CALCULATED_FIELDS id="6"]</div>
<div id="id_div_two">Please call our office for a quote</div>

我让它在提交触发价格计算插件的显示的地方工作,但我不明白如何使用 if / else 从数组中提取。非常感谢任何帮助——我一直在网上搜索,但运气不佳。

【问题讨论】:

标签: jquery arrays if-statement zip


【解决方案1】:

$.inArray() 需要至少 2 个参数 - 1) 要查找的值和 2) 要查找的数组Documentation

在您的情况下,您只传递值(根据inArray 的签名的第一个参数),您需要的是:

if(jQuery.inArray($('#id_zip_code').val(), zipCodes) > -1) {
    ...
}

【讨论】:

  • 啊,这更有意义——谢谢!但是,添加此代码后仍然无法正常工作,并且会自动显示 #id_div_two 内容。
【解决方案2】:

试试

$(function(){
    var zipCodes = ['92056', '90210', '92121', '92101','19148'];
    $('#id_div_one, #id_div_two').hide();

    $('#zip_form').submit(function(){
        $('#id_div_one, #id_div_two').hide();
        if(jQuery.inArray($('#id_zip_code').val(), zipCodes) > -1) {
            $('#id_div_one').css('display', 'inline');
        } else {
            $('#id_div_two').css('display', 'inline');
        }
        return false;
    });

});

演示:Fiddle

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    相关资源
    最近更新 更多