#javascript #page-refresh
#javascript #страница-обновить
Вопрос:
Это простая страница с подсчетом гласных. Когда я вставляю слово с гласными, результат отображается на секунду, а затем страница обновляется. Когда гласных нет, вывод не соответствует ожидаемому, а затем страница снова обновляется. Кто-нибудь может мне помочь, пожалуйста?
function findVow(event) {
event.preventDefault();
var input, resu<
// Get value of the input
input = document.getElementById('text').value;
var regex = /[aeiou]/gi;
//unify the case and get the length
var count = input.match(regex).length;
if (count > 0) {
result = "Vowels found : " count;
} else {
result = "No vowels found";
}
//print the number of vowels if any
document.getElementById("demo").innerHTML = resu<
};
<!DOCTYPE html>
<html>
<head>
<title>challenge1</title>
</head>
<body>
<form>
<input id="text" placeholder="Enter a word" type="text" />
<br><br>
<button onclick="findVow()">Count vowels</button>
<br>
<p id="demo"></p>
</form>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
Комментарии:
1. type=»button» — вы отправляете сейчас
2. Событие не работает при вызове функции, вы не можете передать событие в качестве аргумента при вызове функции
3. Быстрое решение — это использовать
onclick="findVow(event)"
. Или вы можете удалить<form>
метки.
Ответ №1:
Вы отправляете форму при использовании кнопок по умолчанию.
Событие, которое вы хотели, передается не так, как вы ожидаете, — передается кнопка.
ЛИБО используйте type=button, ЛИБО лучше: используйте event.preventDefault, как сейчас, но в событии отправки
document.getElementById("myForm").addEventListener("submit", function(event) {
event.preventDefault();
var input, resu<
// Get value of the input
input = document.getElementById('text').value;
var regex = /[aeiou]/gi;
//unify the case and get the length
var count = input.match(regex).length;
if (count > 0) {
result = "Vowels found : " count;
} else {
result = "No vowels found";
}
//print the number of vowels if any
document.getElementById("demo").innerHTML = resu<
});
<form id="myForm">
<input id="text" placeholder="Enter a word" type="text" />
<br><br>
<button>Count vowels</button>
<br>
</form>
<p id="demo"></p>
Ответ №2:
добавить type='button'
к кнопке в форме
<button onclick="findVow()" type='button'>Count vowels</button>
Ответ №3:
Добавьте type="button"
к кнопке, и если вы хотите захватить событие кнопки, вы можете сделать это следующим образом:
$('btnClick').on('click',function(event){
event.preventDefault();
var input, resu<
// Get value of the input
input = document.getElementById('text').value;
var regex = /[aeiou]/gi;
//unify the case and get the length
var count = input.match(regex).length;
if (count > 0) {
result = "Vowels found : " count;
} else {
result = "No vowels found";
}
//print the number of vowels if any
document.getElementById("demo").innerHTML = resu<
});
<!DOCTYPE html>
<html>
<head>
<title>challenge1</title>
</head>
<body>
<form>
<input id="text" placeholder="Enter a word" type="text" />
<br><br>
<button class="btnClick" type="button" >Count vowels</button>
<br>
<p id="demo"></p>
</form>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
Комментарии:
1. Вы не удалили onclick. Смотрите Мой ответ для полного примера