2016-10-19 2 views
0
<p>Enter some text</p> 
<form> 
<input type="text" id="userInput"> 
<button onclick="log();">Go!</button> 
</form> 

<script> 
function log() { 
    var input = document.getElementById("userInput").value; 
    console.log(input); 
} 
</script> 

Когда я нажимаю кнопку, она обновляет страницу, очищая журнал. Первоначально я пытался использовать <input type="submit">, но когда я нажимаю кнопку любого типа, он обновляется. Как я могу это остановить?Вход в систему регистрации ошибок JS JACK

+0

использование 'типа =«кнопка»' на кнопке, так что не представляет форму –

+0

альтернативная Хитрость заключается в том, чтобы установить onsubmit переменных форму следующим образом: '

onsubmit =" return false "> ....
' – Gabrio

ответ

0

попробуйте:

<p>Enter some text</p> 
<form action="" method=""> 
    <input name="userInput" type="text" id="userInput" /> 
    <button type="button" onclick="log()">Go!</button> 
</form> 

<script> 
    function log() { 
     var input = document.getElementById("userInput").value; 
     console.log(input); 
     return false; 
    } 
</script> 

только добавить return false к вам JS. Подробнее ... stopPropagation.

0

Сложно сказать с вашим примером, но, как правило, если вы пытаетесь предотвратить действие, которое сделает что-то вроде обновления страницы от выполнения этого поведения по умолчанию, вы должны использовать метод preventDefault для обработчика событий. Таким образом, ваша функция станет

function log(e) { // passing in the event to the handler as "e" 
    var input = document.getElementById("userInput").value; 
    console.log(input); 
    e.preventDefault(); 
} 

редактировать: Обновлено с примечаниями Патрика в виду, хотя я до сих пор не вижу попытку обновления страницы в фрагменте кода, даже при отсутствии type атрибута, или тип button или submit ,

<p>Enter some text</p> 
 
<form action="" method=""> 
 
    <input name="userInput" type="text" id="userInput" /> 
 
    <button onclick="log(event)">Go!</button> 
 
</form> 
 

 
<script> 
 
    function log(e) { 
 
     var input = document.getElementById("userInput").value; 
 
     console.log(input); 
 
     e.preventDefault() 
 
    } 
 
</script>

+0

Нет, не работает. –

+0

@HughChalmers - см. Мое редактирование-- Я не вижу, как ваш код пытается обновить фрагмент кода - есть ли что-то еще на вашей странице? –

+1

@anied, OP не имеет атрибута 'type =" button на своей кнопке, поэтому ваша форма не пытается отправить в ваш фрагмент. Кроме того, 'log()' не будет автоматически получать объект 'event', переданный при использовании атрибута onclick', его нужно будет заменить на' onclick = 'log (event) "' –

0
<p>Enter some text</p> 
<form> 
    <input type="text" id="userInput"> 
    <button type="button" onclick="log();">Go!</button> 
</form> 

<script> 
    function log() { 
     var input = document.getElementById("userInput").value; 
     console.log(input); 
    } 
</script> 

Так просто добавить типа = «кнопка»

Смежные вопросы