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



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

#1 Kuchuluk
Kuchuluk
  • Неактивные
  • 333 сообщений
  • Репутация: 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
  • Неактивные
  • 622 сообщений
  • Репутация: 93

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

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

#3 Kuchuluk
Kuchuluk
    Topic Starter
  • Неактивные
  • 333 сообщений
  • Репутация: 5

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

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


  • 0

#4 isvetlichniy
isvetlichniy
  • Неактивные
  • 622 сообщений
  • Репутация: 93

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

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


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

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


  • 0

#5 Kuchuluk
Kuchuluk
    Topic Starter
  • Неактивные
  • 333 сообщений
  • Репутация: 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
  • Неактивные
  • 622 сообщений
  • Репутация: 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
  • Неактивные
  • 622 сообщений
  • Репутация: 93

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

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

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

#9 Kuchuluk
Kuchuluk
    Topic Starter
  • Неактивные
  • 333 сообщений
  • Репутация: 5

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

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

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

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

#10 isvetlichniy
isvetlichniy
  • Неактивные
  • 622 сообщений
  • Репутация: 93

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

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

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

  • 0

#11 fedornabilkin
fedornabilkin
  • Модератор
  • 1 191 сообщений
  • Репутация: 206

Отправлено 24 мая 2013 - 14:46

Есть еще вариант блокировать кнопку отправки, если поле сообщения не заполнено.
Я тоже давно чисты яваскрипт не использовал, больше с жквери все.
  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



#12 Kuchuluk
Kuchuluk
    Topic Starter
  • Неактивные
  • 333 сообщений
  • Репутация: 5

Отправлено 24 мая 2013 - 14:52

Я тоже давно чисты яваскрипт не использовал, больше с жквери все.

я когда jquery изучу, тоже яваскрипт не буду использовать наверное :)

Есть еще вариант блокировать кнопку отправки, если поле сообщения не заполнено.

это на jquery делается?
  • 0

#13 fedornabilkin
fedornabilkin
  • Модератор
  • 1 191 сообщений
  • Репутация: 206

Отправлено 24 мая 2013 - 14:58

Да по сути все равно. жквери просто немного иным способом делается и все. Проще.
  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



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


Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
Megoydagi Megoydagi 1-й за Август
Очков активности: 30 4 темы, 8 сообщений, 1 балл репутации
Сайт: bank.net.ru
ТОП самых активных за этот месяц
  • Фотография Vmir
    #1

    Vmir
    Очков активности: 22.5 3 темы, 6 сообщений, 1 балл репутации

  • Фотография BLIK
    #2

    BLIK
    Очков активности: 18 Вне конкурса за определение пользователя месяца

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 12 1 тема, 5 сообщений, 1 балл репутации

  • Фотография Totti
    #4

    Totti
    Очков активности: 12 0 тем, 8 сообщений, 1 балл репутации

  • Фотография kuztoday
    #5

    kuztoday
    Очков активности: 10.5 1 тема, 4 сообщения, 1 балл репутации

  • Фотография SergiuS85
    #6

    SergiuS85
    Очков активности: 10.5 2 темы, 1 сообщение, 1 балл репутации

  • Фотография mkreine
    #7

    mkreine (analiz-krovi.net)
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография Megoydagi
    #8

    Megoydagi (bank.net.ru)
    Очков активности: 9 Вне конкурса за определение пользователя месяца

  • Фотография kolver
    #9

    kolver
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография wp01
    #10

    wp01
    Очков активности: 7.5 0 тем, 5 сообщений, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

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