输入发生变化时从一组输入中删除内容

时间:2014-12-06 14:41:12

标签: javascript jquery html autocomplete

当用户更改位置字段中的输入时,我需要清除位置禁用的输入。

这是我的代码:http://jsfiddle.net/spadez/6v3kbLbk/7/

var placeSearch, autocomplete;
var componentForm = {
    route: 'long_name',
    locality: 'long_name',
    administrative_area_level_1: 'long_name',
    country: 'long_name',
    postal_code: 'short_name'
};

function initialize() {
    autocomplete = new google.maps.places.Autocomplete(
    (document.getElementById('autocomplete')), {
        types: ['geocode']
    });
    google.maps.event.addListener(autocomplete, 'place_changed', function () {
        fillInAddress();
    });
}

function fillInAddress() {
    var place = autocomplete.getPlace();

    for (var component in componentForm) {
        document.getElementById(component).value = '';
        document.getElementById(component).disabled = false;
    }

    for (var i = 0; i < place.address_components.length; i++) {
        var addressType = place.address_components[i].types[0];
        if (componentForm[addressType]) {
            var val = place.address_components[i][componentForm[addressType]];
            document.getElementById(addressType).value = val;
        }
    }
}

使用google autosuggest我可以使用返回的信息填充字段。但是,当发生以下情况时,我遇到了问题:

用户在地址的一部分中输入 点击自动填充(填写字段) 用户删除或修改当前输入 Uuser在新输入中键入但未单击自动完成

这会在自动填充字段中保留旧值。我需要检查字段中的内容是否已更改,如果有,请删除带有红色边框的字段中的内容。

有人可以告诉我这是怎么做到的吗?我的猜测是这样的:

 $('#autocomplete').keyup('input', function() {
     $(".disabledclass").val('');

2 个答案:

答案 0 :(得分:1)

是的,您是对的,您可以使用 keyup 事件清除值。

document.getElementById('autocomplete').addEventListener("keyup", function() {
    $(".hidden").val('');
});

以下是更新且有效的JSFiddle链接

答案 1 :(得分:1)

在文档准备好的DOM中输入用于输入的keyup事件。请参阅jsFiddle

$( "#autocomplete" ).on('keyup',function() { 
  $("input.hidden").val('');
});