(HTML)Javascript Форма?

MoH7aH4o

Registered
Здравейте,
Искам да попитам, как мога да направя една форма(поне така си мисля, че трябва да стане, чрез някаква форма). Значи искам да направя на страницата ми да се извежда някаква дума и да липсва някоя буква от тази дума. Съответно под тази дума да има поле за въвеждане на липсващата буква или направо на цялата дума. Обаче ако е написана грешно да издава звук за грешка или да изкарва някакъв надпис от типа грешен отговор, за да стане това трябва предварително да съм деклалирал съответната дума(така смятам, че трябва да стане). Някой може ли да ми обясни, как трябва да стане това нещо? Изобщо, какво трябва да направя, че да направя това? Гледах уроци, как се създават форми и как предварително декларираш някакви числа(някакви пресмятания), които директно като се отвори страницата излиза отговора. Но не ми стана ясно, как да направя някакво поле за въвеждане на съответна дума и просто предварително да е декларирана някаква дума за това поле и като се въведе някоя различна от нея да писка или да изкарва текст за грешка.
 
Нещо от рода на бесеница ли искаш да направиш? Аз нещо такова разбрах?
 
http://jsfiddle.net/FakeHeal/Zh2nm/
Код:
//Да вземем random дума.
function randomKey(obj) {
    var ret;
    var c = 0;
    for (var key in obj)
        if (Math.random() < 1/++c)
           ret = key;
    return ret;
}

$(document).ready(function() {
   //Правиш си един обект.
    var words = {};
    words['а'] = 'ябълк*';
    words['е'] = 'самол*т';
    words['ъ'] = 'в*прос'; //ключът е липсващата буква, а стойността думата.
    //Избираш си random думата и я запазваш в променлива.
    var the_word = words[randomKey(words)];
   //Показваш я на потребителя.
    $(".the_word").html(the_word);
   //Потребителя натиска бутона за отговор.
    $("#answer_it").click(function() {
         //Запазваш отговора му в променлива.
        var answer = $("#answer").val();
        //Проверяваш думата коя е.
        $.each(words, function(key, value) {
            if(value == the_word)
            {
               //Ако е правилен отговора. Извеждаш съобщение и рефрешваш страницата.
                if(answer == key)
                {
                    alert("Познахте буквата");
                    window.location.reload();
                    return;
                }
                 //Ако е грешна даваш още опити.
                else
                {
                    alert("Грешна буква. Пробвайте отново.");
                }
            }
        });
        return false;
    });
});

Тва е малко кофти начин може би. Заради цялото обикаляне на масива. Сигурно има и друг начин.

Например имаш масив с думи. Взимаш думата. След това на рандом позиция заменяш буквата с * или някакъв знак, като запазваш предварително думата. Потребителя въвежда отговор. И ако е буквата, която си премахнал е вярно, ако не е грешно.

Може да е по-оптимизиран, а може и така да ми се струва.

П.С. Ползвам jQuery в демото, което съм ти дала.
 
Fakeheal каза:
http://jsfiddle.net/FakeHeal/Zh2nm/
Код:
//Да вземем random дума.
function randomKey(obj) {
    var ret;
    var c = 0;
    for (var key in obj)
        if (Math.random() < 1/++c)
           ret = key;
    return ret;
}

$(document).ready(function() {
   //Правиш си един обект.
    var words = {};
    words['а'] = 'ябълк*';
    words['е'] = 'самол*т';
    words['ъ'] = 'в*прос'; //ключът е липсващата буква, а стойността думата.
    //Избираш си random думата и я запазваш в променлива.
    var the_word = words[randomKey(words)];
   //Показваш я на потребителя.
    $(".the_word").html(the_word);
   //Потребителя натиска бутона за отговор.
    $("#answer_it").click(function() {
         //Запазваш отговора му в променлива.
        var answer = $("#answer").val();
        //Проверяваш думата коя е.
        $.each(words, function(key, value) {
            if(value == the_word)
            {
               //Ако е правилен отговора. Извеждаш съобщение и рефрешваш страницата.
                if(answer == key)
                {
                    alert("Познахте буквата");
                    window.location.reload();
                    return;
                }
                 //Ако е грешна даваш още опити.
                else
                {
                    alert("Грешна буква. Пробвайте отново.");
                }
            }
        });
        return false;
    });
});

Тва е малко кофти начин може би. Заради цялото обикаляне на масива. Сигурно има и друг начин.

Например имаш масив с думи. Взимаш думата. След това на рандом позиция заменяш буквата с * или някакъв знак, като запазваш предварително думата. Потребителя въвежда отговор. И ако е буквата, която си премахнал е вярно, ако не е грешно.

Може да е по-оптимизиран, а може и така да ми се струва.

П.С. Ползвам jQuery в демото, което съм ти дала.

Много Благодаря! Но не знам защо при мен не излиза нищо след "Познай думата: "
 
Ако не зареждаш кода от друг файл слагаш това между <head> и </head>
Код:
<script type="text/javascript">
Тук кода.... между таговете
</script>
Ако зареждаш скрипта от отделен файл и пак между <head> и </head>
Код:
 <script type="text/javascript" src="път до файла">
 
MoH7aH4o каза:
Аз така съм го направил, обаче пак си остава същия проблем.
Вкарай си JQuery !!!

http://jquery.com/download/

или директно
 

Back
Горе