Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2016, 22:40   #1
lisica198808
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 64
По умолчанию работа со сценариями JavaScript.

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

чтото сделала.. но не пойму, верно ли..потому что при нажатии на радиокнопку ничего не происходит. или еще нужно как поле для ввывода текста отдельно в форм прописывать? вроде не трудно, но чтото я запуталась. подскажите что к чему пожалуйста..
Код HTML:
<html>
<head>
<meta charset>
<title>Проверяем знание таблицы умножения</title>
</head>


<body>
 
  Выберите правильный ответ: <br/> <br/>
  
<br />

<FORM ID="form1" NAME="form1">
    <div>   
   <p>1. 3*1= </p>

   <label> <input  type="radio" name="one" value="0" onFocus="click()"/>2</label><br />
   <label> <input  type="radio" name="one" value="1" onFocus="click()"/>3</label><br />
   <label> <input  type="radio" name="one" value="0" onFocus="click()"/>8</label> <br /> <br />
   </div> <hr/>
   <div>   
   <p>2. 3*2= </p>

   <label> <input  type="radio" name="two" value="1" onFocus="click()"/>6</label><br />
   <label> <input  type="radio" name="two" value="0" onFocus="click()"/>9</label><br />
   <label> <input  type="radio" name="two" value="0" onFocus="click()"/>0</label> <br /> <br />
   </div> <hr/>
   
   
   
  </FORM>  

<script type="text/javascript"> 

function click()// вызывается подключенная функция


{if (form1.one[1].checked) && (form1.two[0].checked) 
{//alert("Правильный ответ");}
document.write("Правильный ответ");}
 else  {document.write("Неправильный ответ");}

</script>
</body>
</html>
lisica198808 вне форума Ответить с цитированием
Старый 07.05.2016, 23:50   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Тут было несколько мелких ошибок.

Код лучше всего форматировать/выравнивать.
Сразу будут заметны ошибки синтаксические.

Вот как пример один и тот-же кусок кода.

PHP код:

function click()// вызывается подключенная функция

{if (form1.one[1].checked) && (form1.two[0].checked
{
//alert("Правильный ответ");}
document.write("Правильный ответ");}
 else  {
document.write("Неправильный ответ");} 

А если его отформатировать, сразу видно что не хватает фигурных скобок.

PHP код:
function click(){

    if (
form1.one[1].checked) && (form1.two[0].checked) { 
        
document.write("Правильный ответ");
    }else {
        
document.write("Неправильный ответ");
    } 
И вот в этом месте тоже не хватает круглых скобок.

if ( (form1.one[1].checked) && (form1.two[0].checked) ) {}

// --------------------------------------------------------
То событие на котороы вы подписывались "onFocus()", не совсем
подходит в этом случае.

На много удобнее дать юзеру выполнить все что он хотел и только
после этого проверять что он там выбрал. Но это чисто мое мнение.

Так-же тут был очень интересный случай.
Я использую браузер Iceweasel( подвид firefox ) и он просто отказывается
вызывать функцию "click()" наверное идет
внутренний конфликт зарезервированных имен.

как пример функция не может называться "function"
"function function(){}"

А вот так можно
"function myFunction(){}"

// --------------------------------------------------------
И последнее.

вот этот вызов document.write("...");
Полностью переписывает весь html документ (страницу).

Вместо него я пишу результат в елемент с id="result"

Код:
document.getElementById("result").innerHTML = "все что мне нужно в него записать";
// --------------------------------------------------------
А это рабочий вариант. Я его изменил чуть-чуть по своему.
Думаю будет понятно что к чему. Поиграйте с параметрами,
что-бы лучше усвоить. Я сам так делал.

http://pompiduskus2.0fees.us/public/...able.test.html

Код:

<html>
<head>
    <meta charset="utf-8">
    <title>Проверяем знание таблицы умножения</title>

    <script type="text/javascript"> 

        function getResults(){ 

            if ( (form1.one[1].checked) && (form1.two[0].checked) ) { //alert("Правильный ответ");}

                document.getElementById("result").innerHTML = 
                '<span style="color: #0F0; text-weight: bold;">Правильный ответ</span>';
                console.log("Правильный ответ");

            }else{
                document.getElementById("result").innerHTML = 
                '<span style="color: #F00; text-weight: bold;">Неправильный ответ</span>';
                console.log("Неправильный ответ");
            }
        }

    </script>


</head>

<body>
 
    Выберите правильный ответ: <br/> <br/>

    <FORM ID="form1" NAME="form1">
        <div>   
            <p>1. 3*1= </p>
            <label> <input type="radio" name="one" value="0"/>2</label><br />
            <label> <input type="radio" name="one" value="1"/>3</label><br />
            <label> <input type="radio" name="one" value="2"/>8</label> <br />
        </div>
        <hr/>
        <div>   
            <p>2. 3*2= </p>
            <label> <input type="radio" name="two" value="0"/>6</label><br />
            <label> <input type="radio" name="two" value="1"/>9</label><br />
            <label> <input type="radio" name="two" value="2"/>0</label> <br />
        </div> 
        <hr/>

    </FORM>  
    <button onclick="getResults()">Проверить</button>
    <br/>
    <div id="result"></div>

</body>
</html>
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 08.05.2016 в 00:00.
pompiduskus вне форума Ответить с цитированием
Старый 08.05.2016, 15:43   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Если надо реал-тайм проверять, то у инпутов есть событие onchange.
Про привязку событий лучше почитайте на learn.javascript.ru, ибо тут представлен не самый лучший способ обработки событий.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с датой и временем (JavaScript) sne-vlad Помощь студентам 0 17.07.2015 23:54
работа с JavaScript Ferishi Помощь студентам 0 20.05.2013 17:48
Работа с элементами страницы (JavaScript) sandak Помощь студентам 4 08.04.2012 13:18
Работа со строками в JavaScript aly-lucenko Помощь студентам 3 17.05.2011 21:51