Простая проблема JavaScript, включающая формы и оповещения - PullRequest
1 голос
/ 09 марта 2011

Я пытаюсь создать форму, которая принимает имя пользователя, а затем, когда нажимается кнопка отправки, появляется предупреждение, в котором говорится, доброе утро, день или вечер (в зависимости от времени). Я чувствую, что нахожусь на небольшом расстоянии, но я просто не могу заставить его работать, вот соответствующие фрагменты кода:

<script type="text/javascript"> 
<!--
    function say_hello() {
        var date = new Date();
        var time = date.getHours();
        var name = document.forms["hello"]["name"].value;

            if (time < 12) {
                alert ("Good morning, "+name+"!");
            }

            else if (time > 12 && time < 18) {
                alert ("Good afternoon, "+name+"!")
            }

            else {
                alert ("Good evening, "+name+"!")
            }
        );
    }
// -->
</script>

и HTML:

    <form name="hello" action=""> 
    <p> 
    What is your name?
    <input type="text" name="name" size="10">
    </input> 
    </p> 
    <p> 
    <input type="button" name="Submit" onclick="say_hello()" value="Receive Personal Message!">
    </input>
    </p> 
</form>

Спасибо! : D

Ответы [ 4 ]

0 голосов
/ 09 марта 2011

Исправляя все ваши синтаксические ошибки, я бы порекомендовал вам прикрепить событие следующим образом:

document.forms["hello"]["Submit"].onclick=say_hello;

Вместо из onclick="..."

LIVE DEMO

0 голосов
/ 09 марта 2011
function say_hello() {
    var date = new Date();
    var time = date.getHours();
    var name = document.forms["hello"]["name"].value;

        if (time < 12) {
            alert ("Good morning, "+name+"!");
        }

        else if (time > 12 && time < 18) {
            alert ("Good afternoon, "+name+"!")
        }

        else {
            alert ("Good evening, "+name+"!")
        }
    //); //This causes a syntax error
}
0 голосов
/ 09 марта 2011

В вашей функции есть синтаксическая ошибка сразу после последней else {...}, есть ненужная );.

Попробуйте удалить его, оно должно работать!

0 голосов
/ 09 марта 2011

У вас есть синтаксическая ошибка в вашем JavaScript.");"не нужен.

function say_hello() {
    var date = new Date();
    var time = date.getHours();
    var name = document.forms["hello"]["name"].value;

    if (time < 12) {
        alert ("Good morning, "+name+"!");
    }

    else if (time > 12 && time < 18) {
        alert ("Good afternoon, "+name+"!");
    }

    else {
        alert ("Good evening, "+name+"!")
    }
}
...