Так у меня есть этот код, чтобы сделать поиск с помощью RegExp, он проходит через массив строк и ищет пользовательский ввод:Почему событие JavaScript обновляет страницу
Clinica.prototype.pesquisarDoente = function()
{
var exp = document.getElementById("pesquisaInput").value;
var lista = document.getElementById("listaDoentes");
if (exp)
{
while (lista.firstChild)
lista.removeChild(lista.firstChild);
var patt = new RegExp(exp);
var lenght = this.doentes.length
for (i = 0; i < lenght; i++)
{
if (patt.test(this.doentes[i].nome))
{
var option = document.createElement("option");
option.appendChild(document.createTextNode(this.doentes[i].toString()));
lista.appendChild(option);
}
}
}
}
, а затем я называю это событие:
var buttonPesquisa = document.createElement("input");
buttonPesquisa.type = "submit";
buttonPesquisa.value = "Pesquisar";
buttonPesquisa.addEventListener('click', function() { cl.pesquisarDoente(this); });
, который затем присоединяется к моей странице. проблема в том, что когда я нажимаю кнопку, она очищает список выбора, а затем обновляет страницу. почему это ??
, это сработало! он не находит ничего, но я предполагаю, что у меня неправильное значение регулярного выражения. Он не обновляется сейчас :) –
Это работает, но IMHO лучше не использовать кнопку отправки, если вы не хотите отправлять данные формы обычным способом. Вместо этого используйте обычную кнопку. –
Да, я изменил его сейчас, но все еще нуждался в предотвращении дефолта –