Количество нажатий на кнопку
Написал простой код который высчитывает количество нажатий на кнопку.Пытался написать что когда нажатий больше 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>
|
Смог написать только такое
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,
Цитата:
|
Ам точно ,тогда погодите как оно вообще работает?с вот этой от байдаленью оно обнуляет ответы и нажатия на кнопки,как??????
И да,подправил в том месте что бы работало коректно.И подскажите ище как зделать что бы при 4 нажатии правильность овтетов не показывалась?Ну тоесть чтобы происходило полное затирание а не только как я сейчас обнуляю количество нажатий. И вообще я так понимаю в алерт засунуть кнопку нельзя?я почемуто ненашол такого. Или допустим скажите как можно зделать что бы когда все попытки исчерпаютса появлялась кнопка рядом уже с двумя существующими,а до этого ёё небыло? |
так я яваскрипт задрот и я не понял в чем проблема.
|
Цитата:
if (confirm("Вы исчерпали количество попыток")) {
появитса алерт у которого две кнопки Ок и Отмена,а я допустим хочу что бы вместо них было Начать заново или Перейти к следующему тесту и отправляло к следующему тесту(на пустую страницу сейчас допустим) ну или если невозможно в алерте менять названия кнопок или всовывать туда кнопки. То чтобы третья кнопка, допустим "пройти тест заново" появлалась на экране рядом уже с двумя существующими(ну или в любой точке экрана это не важно) только тогда когда количество попыток исчерпалось?Что из этого зделать реальнее. По второму варианту даже представления не имею как это реализовать Ну и да,ище что бы затирались не только количество нажатий на кнопку но и все остально(текст в текстовом поле) |
Ну подскажите хотябы как можно реализовать то что я хочу зделать?
я так понял с алертом идея отпадает? |
Ну либо подскажите как мне можно вызывать действие этой кнопки
<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;
}
|
Цитата:
var button = document.getElementById('id2');
button.onclick = function() {
alert('Действие!');
}
или
var form = document.getElementById('id2').form;
form.onreset = function() {
alert('Действие!');
}
|
| Часовой пояс GMT +3, время: 04:28. |