Почему я не могу использовать onsubmit для изменения innerHTML? - PullRequest
3 голосов
/ 22 февраля 2011

Мне нужно использовать поля формы в переводчике английского / аминокислотного кода. Приведенный ниже код упрощен, чтобы показать проблему, с которой я столкнулся. Я хочу изменить текст с помощью функции JavaScript.

Если я использую ввод типа: кнопка с при нажатии , это работает.

Кнопка

A submit с onsubmit в форме изменяет текст на доли секунды, а затем возвращается обратно. Мне нужно использовать форму для моей программы перевода, так как я могу заставить ее работать?

Дополнительный кредит: почему он изменяется на доли секунды при отправке?

<html>
<head>
<script type="text/javascript">
function changeTo(text){
    document.getElementById("p1").innerHTML=text;
}
</script>
</head>
<body>
<h1 style="text-align:center;">Change text in an element</h1>
<!--
<form onsubmit="changeTo('Hello World');">
<input type="submit" />
</form>
-->
<input type="button" onclick="changeTo('Hello World');" />
<p id="p1">text</p>

</body>
</html>

1 Ответ

3 голосов
/ 22 февраля 2011

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

<form onsubmit="changeTo('Hello World');return false;">
<input type="submit" />
</form>

Верните false в конце, там остановит процесс отправки.

...