Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Как получить значение формы

#1 Kuchuluk

Kuchuluk
  • Пользователь
  • 315 сообщений
  • Репутация: 5
0

Отправлено 24 Май 2013 - 09:12

с яваскриптом знаком плохо. делаю форму для отправки комментариев. задача такая что если форма пустая и пользователь нажимает на кнопку отправить, то просто ничего не происходит и ничего не отправляется. форма такая
<textarea cols='35' placeholder='Ваш комментарий' rows='3'  id='text-comment'></textarea>
<br><input type='image' name='comment' id='com-button' src='../party/sys-images/com-button1.gif' onclick='proverkaComment()' onMouseOver="this.src='../party/sys-images/com-button2.gif'" onMouseOut="this.src='sys-images/com-button1.gif'">
по событию onclick вызывается функция proverkaComment(), я понимаю, что туда нужно получить значение из textarea и потом проверить равно оно нулю или нет, и присвоить false если равно. Но вопрос в том как получить в эту функцию данные из textarea. Яваскрипт плохо знаю.

 

 

  • 0

#2 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Май 2013 - 09:27

text = document.getElementById('text-comment');
  • 0

#3 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 24 Май 2013 - 09:30

text это переменная?


  • 0

#4 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Май 2013 - 09:46

var text = document.getElementById('text-comment');


так понятнее? :)

а вообще посмотри вот, когда то я писал статью про валидацию


  • 0

#5 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 24 Май 2013 - 10:03

огромное спасибо!

у вас в статье про jquery рассказывается, а я его еще не учил, я только js учу((

посмотрите пожалуйста, я условие правильно написал или нет. работает, но может не правильно всё-таки.

if (text == 0)
{
document.onclick = function() {return false;}
}
else
{
document.onclick = function() {return true;}
}

  • 0

#6 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Май 2013 - 10:28

а почему text == 0 ? ты же проверяешь на пустое значение

пиши вот так

if (text == '')

или
if (text.length == 0)

когда мне приходится делать валидацию на JS , я делаю вот так
<form method="post" action="" onsubmit="return formValidate();">
<textarea cols='35' placeholder='Ваш комментарий' rows='3'  id='text-comment'></textarea>
<input type="submit">
</form>

ну и сама функция валидации
function formValidate(){  
   if (document.getElementById(text-comment).value == '') {	  
   alert('Enter Your Comment');
   return false;	
	 }
}

а то как то у тебя все странновато выглядит, если честно
  • 0

#7 MEGApixel

MEGApixel
  • Пользователь
  • 105 сообщений
  • Репутация: 6

Отправлено 24 Май 2013 - 10:51

text = document.getElementById('text-comment');


Так Вы лишь получите ссылку на сам элемент, но ни как ни на его содержимое.

Ваша ф-ия не совсем правильная. Вот так будет лучше:
function formValidate() {
	if (document.getElementById('text-comment').textContent == '') {
		alert('Enter Your Comment');
			return false;
	}
}

Во-первых метод .getElementById() принимает строку или то, что можно преобразовать в строку. А вы ему передаете переменную, которую при том не объявляли. По этому нужно text-comment облачить в кавычки.
И по поводу .value - я ды рекомендовал использовать свойство .textContent. Оно более кроссбраузерное. Хотя, возможно, я не совсем прав. Тут уже дело вкуса.

А если вдруг еще нужно отфильтровать, что пользователь поставил одни пробеллы, то вместо
document.getElementById('text-comment').textContent
можно написать
document.getElementById('text-comment').textContent.replace(/^s+/, '')

  • 2

#8 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Май 2013 - 12:23

Во-первых метод .getElementById() принимает строку или то, что можно преобразовать в строку. А вы ему передаете переменную, которую при том не объявляли. По этому нужно text-comment облачить в кавычки.

бляха-муха, та то я наскоро с ошибкой написал. да, ты прав на счет кавычек. уже сто лет не использовал чистый JS
  • 0

#9 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 24 Май 2013 - 13:06

можно написать

document.getElementById('text-comment').textContent.replace(/^s+/, '')

и эту строку кода перед проверкой поставить?
  • 0

#10 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Май 2013 - 13:34

да это же и есть способ получить значение, тоесть

var text = document.getElementById('text-comment').textContent.replace(/^s+/, '');

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru