Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как прописать условия для полей input и textarea (https://javascript.ru/forum/misc/38549-kak-propisat-usloviya-dlya-polejj-input-i-textarea.html)

Nailya 06.06.2013 10:30

как прописать условия для полей input и textarea
 
у меня два поля input и textarea, мне нужно сделать следующее, если поля заполнены, должно всплыть окно с текстом, а если поле пустое, то другой текст

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

<form action="zxc.php" method="POST">
		<input class="author" type="text" name="author"/>
       <textarea class="com" name="comment" cols="50" rows="5">
		</textarea>
	<input class="button" name="button" type="submit" onclick="moderation_0(this)" value="Отправить" />
</form>


function moderation_0(sub){
	var textarea = document.getElementsByTagName('textarea'); 
	var input = document.getElementsByTagName('input');
	if(textarea != 0 && input != 0){
	alert('Спасибо, Ваш комментарий отправлен на модерацию');
	}
	else{
		alert('Поля ввода текста не заполнены');
	}
			
}

ruslan_mart 06.06.2013 12:44

function moderation_0(sub){
	var textarea = document.getElementsByClassName('author')[0]; 
	var input = document.getElementsByClassName('com')[0];
	if(textarea && input){
	alert('Спасибо, Ваш комментарий отправлен на модерацию');
	}
	else{
		alert('Поля ввода текста не заполнены');
	}
			
}

Nailya 06.06.2013 13:20

Не помогло(

пустые или не пустые поля, срабатывает в любом случае первый алерт

ruslan_mart 06.06.2013 13:28

Nailya, ой, упустил кое что.
function moderation_0(sub){
	var textarea = document.getElementsByClassName('author')[0].value; 
	var input = document.getElementsByClassName('com')[0].value;
	if(textarea && input){
	alert('Спасибо, Ваш комментарий отправлен на модерацию');
	}
	else{
		alert('Поля ввода текста не заполнены');
	}
			
}

Nailya 06.06.2013 13:43

это скрипт почему-то реагирует только на поле input: я попробовала заполнить только input, поле textarea оставила пустым, и у меня сработал
первый алерт

Nailya 06.06.2013 13:58

Вот так заработало)

function moderation_0(sub){
	
	var textarea = document.getElementsByClassName('com')[0].value;
	if(textarea != ''){
	alert('Спасибо, Ваш комментарий отправлен на модерацию');
	}
	else{
		alert('Поля ввода текста не заполнены');
	}
			
}

ruslan_mart 06.06.2013 14:14

Цитата:

Сообщение от Nailya
Вот так заработало)

Ну тогда при пустом input все равно будет добавляется комментарий ;)

Ловкость рук и никакого мошейничества :)
<form action="zxc.php" method="POST">
        <input class="author" id="author" type="text" name="author"/>
        <textarea class="com" id="comment" name="comment" cols="50" rows="5"></textarea>
    <input class="button" name="button" type="submit" onclick="moderation_0()" value="Отправить" />
</form>

function moderation_0()
{
   alert((document.getElementsById('author').value != '' && document.getElementsById('comment').value != '') ? ''Спасибо, Ваш комментарий отправлен на модерацию' : 'Поля ввода текста не заполнены');
}

NeoN 06.06.2013 14:31

Или можно добавить ID, так проще вроде )

function moderation_0(){
	var textarea = document.getElementById('comment').value; 
	var input = document.getElementById('author').value;
	if(textarea.length && input.length){
	alert('Спасибо, Ваш комментарий отправлен на модерацию');
	document.getElementById('submit').submit();
	}
	else{
		alert('Поля ввода текста не заполнены');
		
	}
			
}


<form action="zxc.php" method="POST" id="submit">
		<input class="author" type="text" name="author" id="author"/><br>
       <textarea class="com" name="comment" cols="50" rows="5" id="comment">
		</textarea><br>
	<input class="button" name="button" type="button" onclick="moderation_0()" value="Отправить" />
</form>


еще тип последнего инпута сделал button, чтобы форма не сабмитилась в случае пустых полей. сабмит устроен через эту строку - document.getElementById('submit').submit();

NeoN 06.06.2013 14:34

Цитата:

Сообщение от Ruslan_xDD (Сообщение 254749)
alert((document.getElementsById('author').value

document.getElementsById() вроде не бывает. на сколько я знаю Id должен быть уникальным, поэтому нужно использовать document.getElementById()

ruslan_mart 06.06.2013 15:54

NeoN, да да, не заметил просто. :)


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