Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Активация кнопки при вводе верного ответа (https://javascript.ru/forum/misc/7532-aktivaciya-knopki-pri-vvode-vernogo-otveta.html)

JukiPuki 06.02.2010 22:20

Активация кнопки при вводе верного ответа
 
Здравствуйте!
Помогите реализировать. Есть форма и кнопка (submit). По дефолту кнопка неактивная, и при вводе верного ответа в поле формы, активируется. Скрипт проверки:
q = new Array();
q['q1'] = '4';

function checkQ(str) {
if(document.getElementById(str).value.toUpperCase() == q[str])
{
validate1(str);
}
else
{
validate2(str);
}

}

function validate1(qstr) 
{
if(document.getElementById(qstr).disabled == false) 
{
document.getElementById(qstr).disabled = true;
document.getElementById(qstr).style.border = '2px solid #00FF00';
}
}

function validate2(qstr) {
if(document.getElementById(qstr).value=='') {
document.getElementById(qstr).style.border = '1px solid #A5ACB2';
}
else
{
document.getElementById(qstr).style.border = '2px solid #FF0000';
}
}


и сам HTML:
<table class=head cellSpacing=5 cellPadding=5 align=center order=0>
<tbody>
<tr class=rows>
<td>2 + 2 =</td>
<td><input id=q1 onkeyup="javascript:checkQ('q1')"></td>	
</tr>
</tbody>
</table>

<table class=head cellSpacing=5 cellPadding=5 align=center border=0>
<tbody>
<tr>
<td>
<form action="" method="" name="goNext">
<input name="next" type="submit" value="Next" disabled="disabled">
</form>
</td>
</tr>
</tbody>
</table>


Пробовал так:
function validate1(qstr) 
{
if(document.getElementById(qstr).disabled == false) 
{
document.getElementById(qstr).disabled = true;
document.getElementById(qstr).style.border = '2px solid #00FF00';
document.goNext.elements['next'].disabled = false;
}
}


И так:
function validate1(qstr) 
{
if(document.getElementById(qstr).disabled == false) 
{
document.getElementById(qstr).disabled = true;
document.getElementById(qstr).style.border = '2px solid #00FF00';
document.getElementById(next).disabled = false;
}
}

Новий HTML:
<table class=head cellSpacing=5 cellPadding=5 align=center border=0>
<tbody>
<tr>
<td>
<input id=next type="submit" value="Next" disabled="disabled">
</td>
</tr>
</tbody>
</table>


Удалось только провести проверку ввода ответа, а кнопка так и остается неактивной:(
Буду очень благодарен за помощь!

fizzle 07.02.2010 23:54

JS

var q = '4';
	function checkQ()
	{
	document.getElementById("sub").disabled = true;
	if(document.getElementById("q1").value == q)
	{
	document.getElementById("sub").disabled = false;
	document.getElementById("sub").style.border = '2px solid #00FF00';
	}
    }



И сам HTML

<table class=head cellSpacing=5 cellPadding=5 align=center order=0>
	<tbody>
	<tr class=rows>
	<td>2 + 2 =</td>
	<td><input id="q1" onkeyup="checkQ()"><td> 
	</tr>
	</tbody>
	</table>
	 
	<table class=head cellSpacing=5 cellPadding=5 align=center border=0>
	<tbody>
	<tr>
	<td>
	<form action="" method="" name="goNext">
	<input name="next" type="submit" value="Next" id="sub" disabled="disabled">
	</form>
	</td>
	</tr>
	</tbody>
	</table>

JsLoveR 08.02.2010 01:12

var q = '4';

var q = 4 ;
уточнение)

JukiPuki 08.02.2010 23:12

Большое спасибо) работает:victory:


Часовой пояс GMT +3, время: 21:11.