【问题标题】:Set Text Input with Data from JSON depending on Selectbox Option or Autocomplete Selection根据选择框选项或自动完成选择,使用来自 JSON 的数据设置文本输入
【发布时间】:2017-12-21 10:08:49
【问题描述】:

我有一个分类网站,用户为每个提交的新广告输入位置信息,该信息在谷歌地图侧边栏上显示位置。但是,除非使用正确的邮政编码,否则谷歌地图无法正确显示。我试图解决这个问题,但无法解决。用户通常不知道邮政编码,可能会忽略它。

这就是为什么我想在 JSON 文件中存储邮政编码信息并在用户选择一个州时从中获取数据的原因,邮政编码会在邮政编码文本字段中自动生成。例如,当用户从选择框的下拉列表中选择“吉隆坡”时,它应该根据存储在 JSON 文件中的数据在邮政编码文本字段中自动生成“57000”。

My JSfiddle

<label>State</label>
<select name="cp_state" id="cp_state" class="dropdownlist required"><option value="">-- Select --</option><option value="Kuala Lumpur" selected="selected">Kuala Lumpur</option><option value="Labuan">Labuan</option><option value="Malacca">Malacca</option>              </select>

<label>Zip/Postal Code </label>
<input name="cp_zipcode" id="cp_zipcode" type="text" class="text" placeholder="Enter zipcode" />

JSON 数据

[
  {
        "czipcode": "57000",
        "cstate": "Kuala Lumpur"
    },
    {
        "czipcode": "75000",
        "cstate": "Labuan"
    },
    {
        "czipcode": "87000",
        "ctate": "malacca"
    }
]

【问题讨论】:

    标签: javascript html json zipcode form-fields


    【解决方案1】:

    最后,我解决了我的问题。我使用了Ajax AutoComplete for jQuery,它还添加了自动完成功能,该功能显示为用户在文本字段中键入,该文本字段与 json 值不断匹配。单击建议时,它将使用存储在 json 中的相应数据更新邮政编码文本字段。

    <label>State</label>
    <input type="text" name="cstate" id="autocomplete"/><br><br><br>
    <label>Zipcode</label>
    <input id="zipcode" type="text" name="zipcode"/>
    
    <script type="text/javascript" src="au/scripts/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="au/scripts/jquery.mockjax.js"></script>
    <script type="text/javascript" src="au/src/jquery.autocomplete.js"></script>
    <script>
    var cstates = [
        { value: 'Kuala Lumpur', data: '57000' },
        { value: 'Labuan', data: '75000' },
        { value: 'Malacca', data: '87000' }
        ];
    
    $('#autocomplete').autocomplete({
        lookup: cstates,    // lookup suggestion from cstates json
        lookupLimit: 2,     //limit suggestion result display
        onSelect: function (suggestion) {
            $('#zipcode').val(suggestion.data);//set zipcode textfield with the data of state clicked
        }
    });
    </script>
    

    【讨论】:

    • 我希望这个解决方案对某人有所帮助。它更好,并添加了很酷的自动完成功能。根据您可能拥有的大量数据,您可以使用“lookupLimit”限制建议列表。还有更多要添加的内容,请访问自动完成网站了解更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2015-07-31
    • 2018-07-21
    • 2021-12-20
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    相关资源
    最近更新 更多