Javascript еще, если не работает

0

Я новичок в этом и не могу понять, почему он не работает:

Поэтому у меня есть функция:

function testResults() {
    var answer = document.getElementById("myForm");
    if (answer = 'James'); {
        alert("Good !");
    } else if (answer = 'james'); {
        alert("Good !");
    } else {
        alert("Wrong !");
    }

И вот <form>:

<form name="myform">
    Enter your name 
    <input type="text" name="inputbox" value="">
    <input type="button" name="button" value="Click" onClick="testResults()" >
</form>

И это не сработает.

  • 0
    Задание против сравнения, = против == против === .
  • 0
    В вашем коде слишком много проблем. Я считаю, что вы должны узнать больше, прежде чем продолжить. Вот отличный ресурс: MDN PS: вам не нужно давать имя каждому элементу, если вы отправляете форму. Просто убедитесь, что у них есть действительный идентификатор для легкого выбора. ;)
Теги:
forms

4 ответа

1

В этих двух строках есть 4 ошибки:

var answer = document.getElementById("myForm");
if (answer = 'James');

Первая строка возвращает элемент с идентификатором myform на вашей странице. Поскольку его нет, он возвращает NULL и ваши сравнения всегда терпят неудачу.

Когда вы действительно используете правильный идентификатор для извлечения ввода, вам все равно придется получать значение вместо самого элемента.

Образец:

<input type="text" id="test" value="waa">
<button onclick="alert(document.getElementById('test').value)">Click me!</button>

После того, как вы все это исправили, используйте == для сравнений, так как = для назначений, и удалите точку с запятой (;) после if поскольку она автоматически закрывает оператор.

  • 0
    И он не закрыл свою функцию /
  • 0
    Да, я просто подсчитывал ошибки в этих двух строках, но на самом деле это уникальная пятая ошибка - остальная часть кода просто повторяет те же ошибки: P
Показать ещё 3 комментария
0

http://jsfiddle.net/48KLN/2/

<form name="myform">
    Enter your name 
    <input type="text" name="inputbox" id='textBox' value=""/>
        <input type="button" name="button" value="Click" onClick="testResults()" />
</form>
        <script>
            function testResults() {
    var answer = document.getElementById("textBox").value;
    if (answer == 'James') {
        alert("Good !");
    } else if (answer == 'james') {
        alert("Good !");
    } else {
        alert("Wrong !");
    }
}
        </script>

Вы ошиблись

  1. Вы получаете myForm по id, но в html-форме имеет только имя
  2. Даже если бы форма имела идентификатор, вы пытались сравнить HtmlFormObject со строкой
  3. если вы использовали setter вместо equall
  4. после, если "(ответ = 'Джеймс')," вы добавили; что неверно
0
   <form name="myform">
    Enter your name 
    <input type="text" name="inputbox" value="" id="field">
    <input type="button" name="button" value="Click" onClick="testResults()" >
</form>


<script>
    function testResults () {
        var answer = document.getElementById("field").value;

        if (answer == 'James')
        {
            alert("Good !");
        }
        else if (answer == 'james')
        {
            alert("Good !");
        }
        else 
        {
            alert("Wrong !");
        }
    }
</script>

для равно '==' не single '='

  • 2
    все равно не сработает. Вы не можете сравнить объект DOM формы со строкой.
  • 0
    ой, извините, я не видел, что он пропустил .value
Показать ещё 4 комментария
-2

У вас есть ошибки в коде. Позвольте мне уточнить его:

function testResults() {
    var answer = document.getElementById("myForm");
    if (answer == 'James'); {
        alert("Good !");
    } else if (answer == 'james'); {
        alert("Good !");
    } else {
        alert("Wrong !");
    }
};
  • 0
    Вы не можете сравнить узел HTML со строкой.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню