Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Идентифицировать элемент (https://javascript.ru/forum/dom-window/34761-identificirovat-ehlement.html)

Shurik 17.01.2013 18:03

Идентифицировать элемент
 
Всем привет!

Есть форма. В ней 2 кнопки. При нажатии на одну кнопку сохраняются данные. При нажатии на другую - переход на другую страницу. Необходимо сделать так, чтобы черз 5 секунд после нажатия на кнопку "сохранить" нажималась кнопка "перейти". После нажатия на "сохранить" у этой кнопки появляется атрибут disabled="disabled". Т.е. если у данной кнопки есть данный атрибут, то должна срабатывать
window.setTimeout(function() {document.getElementById('next').click();}, 5000);


Проблема в том, что ид и название кнопки постоянно меняются. Постоянное только value и type.

Пробовал сделать так:

function a() {
var elems = document.getElementById("responseform").getElementsByTagName("input");
for (i=0; i < elems.length; i++) 
{
    if (elems[i].disabled == "disabled" )
        {window.setTimeout(function() {document.getElementById(\'next\').click();}, 5000);}
    else
        {window.setTimeout(function() {document.getElementById(\'next\').click();}, 5000);}
}
                         }

Не работает

Deff 17.01.2013 18:32

Shurik,
Выложите HTML-код кнопок, оберните их в элемент с постоянным ID

Shurik 22.01.2013 11:24

Получилось вычислить id элемента. написал скрипт, но он не работает. В js я новичок.

var elem = document.getElementById("responseform").getElementById("q180:20_-sibmit");
if (elem.getAttribute("disabled") == disabled)
{
	{window.setTimeout(function() {document.getElementById("next").click();}, 5000);}
	else 	{window.setTimeout(function() {document.getElementById("next").click();}, 40000);}
}


Задача такова: Если элемент id="q180:20_-sibmit" (значение id изменяется) имеет атрибут disabled="disabled", то через 5 сек нажимается кнопка id="next", если атрибута нет, то кнопка id="next" нажимается через 40 сек.

Зараннее благодарен

ksa 22.01.2013 11:43

Shurik, как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<input type='text' id='test' disabled />
<button id='next' onclick='alert(1)'>next</button>
<script type="text/javascript">
	var e = document.getElementById('test');
	if (e) {
		var t=e.getAttribute("disabled");
		t=(t=='disabled'||t!=null)? 5000: 40000;
		setTimeout(function() {document.getElementById("next").click();}, t);
	}
</script>
</body>
</html>

Shurik 22.01.2013 12:25

Спасибо!


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