Я пытаюсь создать форму, которая автоматически изменяет текстовое поле, когда пользователь использует нажатия клавиш.Javascript формуляр автоматический расчет
Эта скрипка иллюстрирует то, что я пытаюсь, однако я не имел успеха.
По сути, я хочу, чтобы в третьем текстовом поле было показано «Количество людей», умноженное на «Цена», как я могу это сделать?
HTML
<form action="postenquiry.php" method="post" name="myform">
<label>Num of People</label>
<input type="text" name="qty" />
<br/>
<label>Price</label>
<input type="text" name="Cost" onkeyup="calculate()" />
<br/>
<input type="text" name="textbox5" />
</form>
Javascript
function calculate() {
if (isNaN(document.forms["myform"]["qty"].value) || document.forms["myform"]["qty"].value == "") {
var text1 = 0;
} else {
var text1 = parseInt(document.forms["myform"]["qty"].value);
}
if (isNaN(document.forms["myform"]["Cost"].value) || document.forms["myform"]["Cost"].value == "") {
var text2 = 0;
} else {
var text2 = parseFloat(document.forms["myform"]["Cost"].value);
}
document.forms["myform"]["textbox5"].value = (text1 * text2);
}
Вы должны разместить код в голове, а не на событие загрузки: http://jsfiddle.net/b87s5hou/1/ – DontVoteMeDown
@DontVoteMeDown Это не так. Пока код добавляется в голову или выполняется через событие onload/DOMContentLoaded, он будет работать все равно. –
@MikeC, когда пользователь присоединяет событие, как он делал 'onkeyup =" calculate() ", он приложил функцию в глобальной ессеке, но когда функция объявлена внутри события' onload', она не является глобальной. В теге 'head', вне любого блока он глобальный, поэтому он может быть вызван событием. – DontVoteMeDown