Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.03.2013, 16:02
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Количество нажатий на кнопку
Написал простой код который высчитывает количество нажатий на кнопку.Пытался написать что когда нажатий больше 3 выводить алерт с кнопкой в нём (начать тест заново),и чтобы все ответы обнулялись,и количество нажатий тоже.
Подскажите как это зделать?
Вот код всей программы
<html>

<head>



<meta charset="utf-8" />
	<title>Test</title>
	
<script type="text/javascript" src="jquery.js"></script>
	<script src="script.js" type="text/javascript"></script>

<script type="text/javascript">


var answer={}

		$(document).ready(function(){
			$.ajax({
				type: "GET",  
				url: "test.xml", 
				dataType: "xml", 
				success: vasa	
	 			
		});
		
	
		
		function vasa(xml) { 
				
				 textanswer=$(xml).find('textanswer')[0].textContent;
				$('.cont2').append(''+textanswer+'');
				
				
				 textanswer=$(xml).find('textanswer')[1].textContent;
				$('.cont2').append(''+textanswer+'');
		        question=$(xml).find('question')[0].textContent;
				$('.cont1').append('<p><label><h4>'+question+'</h4></label></p>');
				question1=$(xml).find('question1')[0].textContent;
				$('.bond1').append('<p><label><h4>'+question1+'</h4></label></p>');
				TextButton=$(xml).find('TextButton')[0].textContent;
				$('.onki').append('<p><label><h4>'+TextButton+'</h4></label></p>');
				TextButton=$(xml).find('TextButton')[1].textContent;
				$('.lolki').append('<p><label><h4>'+TextButton+'</h4></label></p>');
				
				ResultTextTrue=$(xml).find('ResultTextTrue')[0].textContent;
				
				ResultTextFalse=$(xml).find('ResultTextFalse')[0].textContent;

				
				var answers = $(xml).find('answer');
				
 
             		        answers.each(function(index){
									
                                var a = this.textContent;
								
								
                                var rating = +this.getAttribute('rating');
								
									var inputs = document.getElementsByTagName('input');
										if(inputs.length<2)
											{	
											
                                $('.cont').append('<input   name="group1"  type="radio">');
								            }
											else
											{
								$('.bond').append('<input   name="group2"  type="radio">');
										   }
                                answer[index] = rating;

				

				
 
                });
				
				
				
				
			
				var div = document.getElementById('id')
				var decoration = xml.querySelector('style');
				div.style.border = decoration.getAttribute('border');
				div.style.width = decoration.getAttribute('width'); 
				div.style.height = decoration.getAttribute('hight');
				div.style.padding = decoration.getAttribute('padding');
				//div.style.margin = decoration.getAttribute('margin');
				div.style.position = decoration.getAttribute('position');
				
				
			//	var p = document.getElementById('id1')
			//	var decoration = xml.querySelector('buttonstyle');
			//	p.style.position = decoration.getAttribute('position');
			//	p.style.width = decoration.getAttribute('width'); 
			//	p.style.height = decoration.getAttribute('hight');
			//	p.style.margin-left = decoration.getAttribute('marginleft');
			//	p.style.margin = decoration.getAttribute('margin');

		}
	
				
	 			
		});
		
			
				
	 			
		
			


var pressed=0;
function checkAnswer() {
var error = false;
			
					   
            var inputs = document.getElementsByTagName('input');
            for(var i = 0; i < inputs.length ; i++){
               var checked = inputs[i].checked;
              var right = answer[i] == 1;			 			 
               if (checked !== right){
               error=true;
               break;
			   
               }
        }
					if(pressed<3)
							{
					alert("вы нажали меньше трех раз");
					document.getElementById('meow').innerHTML = ++pressed;
                       }
					   else
					   {
					   alert("nagato bolshe 3 raz");
					   }
        output.value=error ? ''+ResultTextFalse+'' : ''+ResultTextTrue+'';
		
        return false;
		
		
    }
	
	
       
      
       
   

</script>

</head>
<body>

<p>На кнопну нажали <span id="meow">0</span> раз.</p>
<form  onsubmit="return checkAnswer()">
	
	 
	 <table>
	 <div  class='cont2' style="margin-left:180px"></div>
	 <div id="id">	 
	 
	 
	 
	 
	 <hr>
	
	 <div  class='cont1' ></div>

	 <div align="center"   class='cont' ></div>
	 
	 <hr> 
	 <div class="bond1"></div>
	 <div align="center" class='bond'></div>
	 <hr>
	
	</div>
	</table>
	 
    <p style="margin-top:430px"><button id="button" onclick=checkAnswer()><div  class='onki'></div></button> <button type="reset"><div class='lolki'></div></button></p>

    <p><textarea id="output" readonly></textarea></p>

</form>



</body>

</html>

Последний раз редактировалось Vasy, 14.03.2013 в 16:09.
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2013, 17:13
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Смог написать только такое
if(pressed<3)
							{
					
					document.getElementById('meow').innerHTML = ++pressed;
                       }
					   else
					   {
					   if (confirm("Вы исчерпали количество попыток")) {
  alert("хотитет попробовать ище раз?")
  pressed=0;
 } 
 else
 {
 alert("Вы несможете больше пройти этот тест");
 }
 


					  
					   }
        output.value=error ? ''+ResultTextFalse+'' : ''+ResultTextTrue+'';
		
        return false;
		
		
    }
	
	
       
      
       
   

</script>

</head>
<body>

<p>На кнопну нажали <span id="meow">0</span> раз.</p>
<form  onsubmit="return checkAnswer()">
	
	 
	 <table>
	 <div  class='cont2' style="margin-left:180px"></div>
	 <div id="id">	 
	 
	 
	 
	 
	 <hr>
	
	 <div  class='cont1' ></div>

	 <div align="center"   class='cont' ></div>
	 
	 <hr> 
	 <div class="bond1"></div>
	 <div align="center" class='bond'></div>
	 <hr>
	
	</div>
	</table>
	 
    <p style="margin-top:430px"><button id="button" type="submit"><div  class='onki'></div></button> <button name id="id2" type="reset"><div class='lolki'></div></button></p>

    <p><textarea id="output" readonly></textarea></p>

</form>



</body>

</html>

а как зделать всетаки так что бы в
alert
появлялись не Ок и Отмена,а Пройти тест ище раз,перейти к следующему тесту?
Ну и меня отправляло на какуето пустую страничку после нажатия перейти к следующему тесту?

Последний раз редактировалось Vasy, 14.03.2013 в 17:44.
Ответить с цитированием
  #3 (permalink)  
Старый 14.03.2013, 17:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Vasy,
Сообщение от Vasy
docoment.getElementById('id2');
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2013, 17:41
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Ам точно ,тогда погодите как оно вообще работает?с вот этой от байдаленью оно обнуляет ответы и нажатия на кнопки,как??????
И да,подправил в том месте что бы работало коректно.И подскажите ище как зделать что бы при 4 нажатии правильность овтетов не показывалась?Ну тоесть чтобы происходило полное затирание а не только как я сейчас обнуляю количество нажатий.
И вообще я так понимаю в алерт засунуть кнопку нельзя?я почемуто ненашол такого.


Или допустим скажите как можно зделать что бы когда все попытки исчерпаютса появлялась кнопка рядом уже с двумя существующими,а до этого ёё небыло?

Последний раз редактировалось Vasy, 14.03.2013 в 17:51.
Ответить с цитированием
  #5 (permalink)  
Старый 14.03.2013, 17:50
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

так я яваскрипт задрот и я не понял в чем проблема.
Ответить с цитированием
  #6 (permalink)  
Старый 14.03.2013, 17:57
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Сообщение от megaupload Посмотреть сообщение
так я яваскрипт задрот и я не понял в чем проблема.
Проблема в том что ну да при выпадаении
if (confirm("Вы исчерпали количество попыток")) {

появитса алерт у которого две кнопки Ок и Отмена,а я допустим хочу что бы вместо них было Начать заново или Перейти к следующему тесту и отправляло к следующему тесту(на пустую страницу сейчас допустим)
ну или если невозможно в алерте менять названия кнопок или всовывать туда кнопки.
То чтобы третья кнопка, допустим "пройти тест заново" появлалась на экране рядом уже с двумя существующими(ну или в любой точке экрана это не важно) только тогда когда количество попыток исчерпалось?Что из этого зделать реальнее.

По второму варианту даже представления не имею как это реализовать


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

Последний раз редактировалось Vasy, 14.03.2013 в 17:59.
Ответить с цитированием
  #7 (permalink)  
Старый 15.03.2013, 04:30
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Ну подскажите хотябы как можно реализовать то что я хочу зделать?
я так понял с алертом идея отпадает?
Ответить с цитированием
  #8 (permalink)  
Старый 15.03.2013, 13:16
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Ну либо подскажите как мне можно вызывать действие этой кнопки
<button id="id2" type="reset">

В этом месте где идет условие на количество попыток(нажатий на кнопку) в
if(pressed<attemptsanswer)
							{
					
					  i = ++pressed;
                       }
					   else
					   {		
							alert("Вы исчерпали количество попыток,хотите попробовать ище?")
							pressed=0;
							document.getElementById('id2');
					   }

var pressed=0;
function checkAnswer() {
var error = false;
			
					   
            var inputs = document.getElementsByTagName('input');
            for(var i = 0; i < inputs.length ; i++){
               var checked = inputs[i].checked;
              var right = answer[i] == 1;			 			 
               if (checked !== right){
               error=true;
               break;
			   
               }
        }
					if(pressed<attemptsanswer)
							{
					
					  i = ++pressed;
                       }
					   else
					   {		
							alert("Вы исчерпали количество попыток,хотите попробовать ище?")
							pressed=0;
							document.getElementById('id2');
					   }
        output.value=error ? ''+ResultTextFalse+'' : ''+ResultTextTrue+'';
		
        return false;
		
		
    }
Ответить с цитированием
  #9 (permalink)  
Старый 15.03.2013, 21:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Vasy
Ну либо подскажите как мне можно вызывать действие этой кнопки
<button id="id2" type="reset">
var button = document.getElementById('id2');
button.onclick = function() {
    alert('Действие!');
}

или
var form = document.getElementById('id2').form;
form.onreset = function() {
    alert('Действие!');
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повесить событие на кнопку, не меняя кода кнопки Weks Общие вопросы Javascript 8 11.11.2012 16:13
Как получить количество дней до определенной даты beard Общие вопросы Javascript 3 24.06.2012 17:22
Задача в том, чтобы проставить галочки на журналы и газеты, выбрать количество месяце karat2707 Events/DOM/Window 5 18.04.2012 03:22
Посчитать общее количество баллов userbanderas jQuery 7 21.09.2011 16:36
Нажать кнопку... leny Firefox/Mozilla 1 29.04.2011 23:24