Не применяется свойство $ ('#input') .val ('') в JQuery

У меня есть неудар в лунку типа text, который я хочу оставить Вашу пустую стоимость, применяя свойство $ ('#id_input') .val ('') в JQuery, но он не применяет к нему изменения, я думаю, что это происходит, потому что этот неудар в лунку я применил к нему свойство, автозавершите.

в момент все отлаживают неудар в лунку формуляра с .val ('') применяется для почти весь неудар в лунку в исключении один, который является тем, который применил к нему свойство, автозавершите, а следовательно он мне касается освежать страницу с F5 для того, чтобы было возможно удалять стоимость этого поля.

Мой Неудар в лунку Tex

<div class="form-group col-md-4">
      <label>Vehiculo</label>
      <input id="txtVehiculo" name="txtVehiculo" type="text" class="form-control">
  </div>

Из-за моей стороны, я создал так называемый метод автозавершил, чтобы загружать все транспортные средства в этот неудар в лунку, который я только что показал, я перемещаю его, как параметр два неудар в лунку type text и array:

autocomplete(document.getElementById("txtVehiculo"), getVehiculos(), document.getElementById("txtPlacaVehiculoImplicado"));

Это код метода, который превращает неудар в лунку type text в один, автозавершите и я знаю, что есть что-то внутри этого кода, который блокирует неудар в лунку и не позволяет мне применять к нему свойство .val (''), чтобы отлаживать стоимость, когда я посылаю данные exitosamente.

function autocomplete(campo, arreglo, campo_oculto) {
var currentFocus;
campo.addEventListener("input", function (e) {
    var a, b, i, val = this.value;
    closeAllLists();
    if (!val) {
        return false;
    }
    currentFocus = -1;
    a = document.createElement("DIV");
    a.setAttribute("id", this.id + "autocomplete-list");
    a.setAttribute("class", "autocomplete-items");
    this.parentNode.appendChild(a);
    for (i = 0; i < arreglo.length; i++) {
        if (arreglo[i].nombre.toUpperCase().includes(val.toUpperCase())) {
            var posicion_inicial = arreglo[i].nombre.indexOf(val.toUpperCase());
            var posicion_final = posicion_inicial + val.length;
            b = document.createElement("DIV");
            b.innerHTML = arreglo[i].nombre.substr(0, posicion_inicial);
            b.innerHTML += "<strong>" + arreglo[i].nombre.substring(posicion_inicial, posicion_final) + "</strong>";
            b.innerHTML += arreglo[i].nombre.substr(posicion_final);
            b.innerHTML += "<input type='hidden' id='" + arreglo[i].id + "' value='" + arreglo[i].nombre + "'>";
            b.addEventListener("click", function (e) {
                campo.value = this.getElementsByTagName("input")[0].value;
                campo.id = this.getElementsByTagName("input")[0].id;
                campo.readOnly = true;
                campo_oculto.value = campo.id;
                closeAllLists();
            });
            a.appendChild(b);
        }
    }
});
campo.addEventListener("keydown", function (e) {
    var x = document.getElementById(this.id + "autocomplete-list");
    if (x)
        x = x.getElementsByTagName("div");
    if (e.keyCode == 40) {
        currentFocus++;
        addActive(x);
    } else if (e.keyCode == 38) { //up
        currentFocus--;
        addActive(x);
    } else if (e.keyCode == 13) {
        e.preventDefault();
        if (currentFocus > -1) {
            if (x)
                x[currentFocus].click();
        }
    }
});
function addActive(x) {
    if (!x)
        return false;
    removeActive(x);
    if (currentFocus >= x.length)
        currentFocus = 0;
    if (currentFocus < 0)
        currentFocus = (x.length - 1);
    x[currentFocus].classList.add("autocomplete-active");
}
function removeActive(x) {
    for (var i = 0; i < x.length; i++) {
        x[i].classList.remove("autocomplete-active");
    }
}
function closeAllLists(elmnt) {
    var x = document.getElementsByClassName("autocomplete-items");
    for (var i = 0; i < x.length; i++) {
        if (elmnt != x[i] && elmnt != campo) {
            x[i].parentNode.removeChild(x[i]);
        }
    }
}
document.addEventListener("click", function (e) {
    closeAllLists(e.target);
});
}

Потом закончившись сохранения я применяю этот метод, чтобы отлаживать стоимость но неудар в лунку в упоминании он не применяет изменения.

function limpiardespuesdeguardar() {
  $('#txtPlacavehiculo').val('');//aplica los cambios
  $('#txtVehiculo').val(''); //NO APLICA LOS CAMBIOS
  $('#txtEmpresa').val(''); //aplica los cambios
  $('#txtTipovehiculo').val(''); //aplica los cambios
  $('#txtModelo').val(''); //aplica los cambios
  $('#txtMarca').val(''); //aplica los cambios
  $('#txtPlacaVehiculoImplicado').val(''); //aplica los cambios
}

Я надеюсь, что они могут помогать мне с решением!

0
задан 08.08.2019, 01:38
1 ответ

Проблема находится в "autocomplete-list", что deberГ-an быть " autocomplete-list"

(Заметьте себе место в мишени, которая есть раньше). QuedarГ - в asГ-:

function autocomplete(campo, arreglo, campo_oculto) {
var currentFocus;
campo.addEventListener("input", function (e) {
    var a, b, i, val = this.value;
    closeAllLists();
    if (!val) {
        return false;
    }
    currentFocus = -1;
    a = document.createElement("DIV");
    a.setAttribute("id", this.id + " autocomplete-list");
    a.setAttribute("class", "autocomplete-items");
    this.parentNode.appendChild(a);
    for (i = 0; i < arreglo.length; i++) {
        if (arreglo[i].nombre.toUpperCase().includes(val.toUpperCase())) {
            var posicion_inicial = arreglo[i].nombre.indexOf(val.toUpperCase());
            var posicion_final = posicion_inicial + val.length;
            b = document.createElement("DIV");
            b.innerHTML = arreglo[i].nombre.substr(0, posicion_inicial);
            b.innerHTML += "<strong>" + arreglo[i].nombre.substring(posicion_inicial, posicion_final) + "</strong>";
            b.innerHTML += arreglo[i].nombre.substr(posicion_final);
            b.innerHTML += "<input type='hidden' id='" + arreglo[i].id + "' value='" + arreglo[i].nombre + "'>";
            b.addEventListener("click", function (e) {
                campo.value = this.getElementsByTagName("input")[0].value;
                campo.id = this.getElementsByTagName("input")[0].id;
                campo.readOnly = true;
                campo_oculto.value = campo.id;
                closeAllLists();
            });
            a.appendChild(b);
        }
    }
});
campo.addEventListener("keydown", function (e) {
    var x = document.getElementById(this.id + " autocomplete-list");
    if (x)
        x = x.getElementsByTagName("div");
    if (e.keyCode == 40) {
        currentFocus++;
        addActive(x);
    } else if (e.keyCode == 38) { //up
        currentFocus--;
        addActive(x);
    } else if (e.keyCode == 13) {
        e.preventDefault();
        if (currentFocus > -1) {
            if (x)
                x[currentFocus].click();
        }
    }
});
function addActive(x) {
    if (!x)
        return false;
    removeActive(x);
    if (currentFocus >= x.length)
        currentFocus = 0;
    if (currentFocus < 0)
        currentFocus = (x.length - 1);
    x[currentFocus].classList.add("autocomplete-active");
}
function removeActive(x) {
    for (var i = 0; i < x.length; i++) {
        x[i].classList.remove("autocomplete-active");
    }
}
function closeAllLists(elmnt) {
    var x = document.getElementsByClassName("autocomplete-items");
    for (var i = 0; i < x.length; i++) {
        if (elmnt != x[i] && elmnt != campo) {
            x[i].parentNode.removeChild(x[i]);
        }
    }
}
document.addEventListener("click", function (e) {
    closeAllLists(e.target);
});
}
0
ответ дан 01.12.2019, 22:25
  • 1
    Не funcionó я, что я верю в другой, автозавершите с нуля. –  Diego Martinez 16.08.2019, 06:46
  • 2
    Тогда проверь в DOM, quizá s верьте dinamicamente в другой элемент, который ты должен применять к нему tambié n чистота данных –  Manuel Fernández Lévano 16.08.2019, 19:08