JavaScript не работает как текстовое поле ввода - PullRequest
1 голос
/ 12 октября 2010

Я знаю, что это очень простой вопрос, но я не могу разобраться в проблеме, и поэтому я задаю вопрос, поэтому, пожалуйста, не повторяйте этот пункт.

В любом случае, я просто работаю над чем-то здесь, и когда я проверил свою страницу, чтобы увидеть, как идут дела, я понял, что мой метод calculate() не очищает ввод текста, как я хочу.

Вот разметка и скрипт:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Quadratic Root Finder</title>
<script>
function calculate(){
var valuea = document.form1.variablea.value;
var valueb = document.form1.variableb.value;
var valuec = document.form1.variablec.value;
document.form1.variablea.value = "";
document.form1.variableb.value = "";
document.form1.variablec.value = "";
}
</script>
</head>

<body>
<form name="form1">
    a:<input name="variablea" value="" type="text">
    <br/>
    b:<input name="variableb" value="" type="text">
    <br/>
    c:<input name="variablec" value="" type="text">
    <br/>
    <input name="calculate" value="Calculate!" type="button" onClick="calculate()">
</form>
</body>
</html>

Пожалуйста, скажи мне, если ты что-нибудь увидишь.

Ответы [ 4 ]

2 голосов
/ 12 октября 2010

Возможно, вы захотите попробовать использовать другое имя.Я пытался вызвать функцию «вычислить», но она продолжает выдавать ошибку, говоря, что «рассчитать» не является функцией.Но когда я вызываю функцию «CalcuQQuad» и изменяю событие onClick на «CalcuQQuad», это работает.

1 голос
/ 12 октября 2010

Внутри метода onclick есть ссылка на элемент, который вы щелкнули. Он называется так же, как имя, которое вы положили на элемент, «рассчитать». Это приводит к тому, что «вычисление» относится не к функции, а к тегу ввода.

Чтобы решить эту проблему, наберите

onclick = "window.calculate()"

или переименуйте имя тега ввода или функции.

1 голос
/ 12 октября 2010

Не совсем уверен, но если вы не хотите переходить на jQuery, вот что вы можете попробовать:

function calculate() {
    var inputa = document.getElementById('inputa');
    inputa.value = '';
}

Просто проверьте это, имея идентификатор "inputa" в одном из полей ввода.Я знаю только, как получить элементы по id, имени или тегу в необработанных Js.Конечно, вы могли бы затем расширить свой код до того, что вы хотите, используя один из этих методов, чтобы получить элементы формы.

0 голосов
/ 12 октября 2010

измените имя кнопки ввода на что-то другое:

<input name="calcul" value="Calculate!" type="button" onClick="calculate()">

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

Просто выкидываю это туда.Я более подробно расскажу, почему это происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...