Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поочередная активация текстовых полей (https://javascript.ru/forum/misc/22880-poocherednaya-aktivaciya-tekstovykh-polejj.html)

Meecrobe 04.11.2011 00:11

Поочередная активация текстовых полей
 
здравствуйте!

есть форма с 2 текстовыми полями и 1 textarea (имя, email, сообщение). При заполнении всех полей отправляется письмо на указанный email. Дабы не выводить каждый раз сообщения вроде "Введите Ваше имя" или "Введите текст сообщения", решил просто-напросто сделать все поля, включая кнопку submit неактивными, кроме первого поля (имя). И по мере того, как пользователь будет вводить данные, следующие за текущим поля будут становиться активными. Когда все поля будут заполнены, то в последнюю очередь активируется кнопка submit, что сделает возможным отправку сообщения. Пробовал и так, и сяк. Пришлось зарегистрироваться. Помогите, пожалуйста:help: :help: :help:

<form action="index.php" method="POST" name="feedbackform">
			<font color="white">
			<font size="5">Cвязаться с нами</font><br>
			Имя: <input id="username" type="text" name="username" size="17"><br>
			E-mail: <input disabled id="email" type="text" name="email" size="17"> 
			<br><br>
			Сообщение:<br>
			<textarea disabled id="message" maxlength="170" name="message" rows="5"></textarea>
			<br>
			<input disabled id="send" type="submit" name="send" value="" class="sendbtn">
			</font>
</form>

melky 04.11.2011 00:38

если стирать - то они не будут деактивироваться. но об этом ничего не было сказано.
document.feedb.ackform.onkeydown = function(e){
    var els = this.elements;
    var el = /*@cc_on!@*/0?event.srcElement:e.target;
    var pos = 0;
    
    if(el.value){

        while(els[pos]) 
            if(els[pos]==el) 
                break;
            else 
                pos++;
        
        el = els[pos+1];
        
        if(el.disabled){
            el.disabled = false;
        }
    }
};

Meecrobe 04.11.2011 00:53

Извините, если недоступно объяснил, но мне нужно именно,чтобы при стирании они вновь деактивировались. Т.е. если содержимое поля == '', то следующее за ним поле становится неактивным и наоборот.

melky 04.11.2011 00:54

вам в раздел "работа". там напишут скрипт за денежное вознаграждение.

Meecrobe 04.11.2011 01:11

я пытался написать сам, но не могу понять, почему не активирует/деактивирует поле в зависимости от значения.

что-то вроде

function send() {
	
	if (document.getElementById('username').value != "") 
	}
		document.getElementById('email').removeAttribute('disabled');
	}
	else
	{
		document.getElementById('email').setAttribute('disabled');
	}
}

melky 04.11.2011 07:24

function send() {
	
*!*
	if (document.getElementById('username').value != "") 
	*!*}*/!*
*/!*
		document.getElementById('email').removeAttribute('disabled');
	}
	else
	{
		document.getElementById('email').setAttribute('disabled');
	}
}


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