Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2008, 12:51
Аватар для Bad Request
Интересующийся
Отправить личное сообщение для Bad Request Посмотреть профиль Найти все сообщения от Bad Request
 
Регистрация: 10.07.2008
Сообщений: 26

Как сделать disabled кнопки во время отправки формы?
Здравствуйте!
Есть форма для отправки сообщения:
<form onsubmit="zapret()">
<textarea cols="30" rows="5"></textarea>
<br/>
<input id="ds" type="submit"/>
</form>

Хочется сделать кнопку submit неактивной во время отправки. Чтобы, в случае задержки отправки, ее не нажимали несколько раз. Пробовал так:
function zapret()
{
   var btn = document.getElementById('ds').disabled = true;
}

Так не работает. В чем моя ошибка? И можно ли сделать, чтобы вообще все элементы формы становились во время отправки неактивными?
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2008, 13:19
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В функции zapret поставьте return false;
Данные формы можно отправить не только нажатием кнопки submit, но и нажатием Enter, если в одном из полей ввода установлен фокус, потому надо отключать событие onsubmit формы или кнопки submit, без разницы.
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2008, 13:57
Аватар для Bad Request
Интересующийся
Отправить личное сообщение для Bad Request Посмотреть профиль Найти все сообщения от Bad Request
 
Регистрация: 10.07.2008
Сообщений: 26

return false не помогает.
Обычные пользователи без мышки ничего не нажимают и не отправляют. Как раз из-за них мне и нужно запретить повторное нажатие кнопки. Чтобы ее не тыркали несколько раз подряд.

Последний раз редактировалось Bad Request, 01.10.2008 в 15:28.
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2008, 15:45
Аватар для Bad Request
Интересующийся
Отправить личное сообщение для Bad Request Посмотреть профиль Найти все сообщения от Bad Request
 
Регистрация: 10.07.2008
Сообщений: 26

Я разобрался, все фурычит!
Ответить с цитированием
  #5 (permalink)  
Старый 27.10.2008, 11:36
Аватар для alt5000
Интересующийся
Отправить личное сообщение для alt5000 Посмотреть профиль Найти все сообщения от alt5000
 
Регистрация: 16.10.2008
Сообщений: 29

Ну и как Вы это реализовали? В чем была ошибка?
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2008, 16:45
Аватар для Bad Request
Интересующийся
Отправить личное сообщение для Bad Request Посмотреть профиль Найти все сообщения от Bad Request
 
Регистрация: 10.07.2008
Сообщений: 26

Да так, как написано все и работает. Просто нужно было поставить какое-нибудь значение action у формы, чтобы отправка данных занимала какое-то время. А так все происходило слишком быстро и я не успевал заменить, что скрипт пашет
Ответить с цитированием
  #7 (permalink)  
Старый 14.04.2014, 14:14
Аватар для onfreedom
Новичок на форуме
Отправить личное сообщение для onfreedom Посмотреть профиль Найти все сообщения от onfreedom
 
Регистрация: 14.04.2014
Сообщений: 1

У меня вот тоже небольшая проблема с данным скриптом. Скрипт работает но при этом не происходит проверки полей форм. поскольку новичок в этом деле не совсем могу понять как правильно объединить, заставить работать 2 скрипта.
<script language="javascript">
function sendform() 
{
if (document.form.form1.value == "") {
alert('Вы не ввели фамилию');
return false;
}
if (document.form.form2.value == "") {
alert('Вы не описали проблему');
return false;
}
return true;
}
</script>

и
<script language="javascript">
function zapret()
{
var btn = document.getElementById('ds').disabled = true;
}
</script>


на одно событие (форму) ?

<form action="work.php" method="POST" name='form' onsubmit="zapret()" onsubmit="return sendform();">
<input type="text" method="post" name="form1">
<input type="text" method="post" name="form2">
<input type="submit" name="submit" value="ok" id="ds">


Пробовал так - но увы (((
<script language="javascript">
function sendform() 
{
if (document.form.form1.value == "") {
alert('Вы не ввели фамилию');
return false;
}
if (document.form.form2.value == "") {
alert('Вы не описали проблему');
return false;
}
return true;
}
{
var btn = document.getElementById('ds').disabled = true;
}
</script>

<form action="work.php" method="POST" name='form' onsubmit="return sendform();">

Последний раз редактировалось onfreedom, 14.04.2014 в 14:50.
Ответить с цитированием
  #8 (permalink)  
Старый 16.04.2014, 13:49
Интересующийся
Отправить личное сообщение для Ilya_Nsk Посмотреть профиль Найти все сообщения от Ilya_Nsk
 
Регистрация: 07.02.2014
Сообщений: 11

Ребят, вы что? Валидация формы на стороне клиента совсем не айс! Если уж на то пошлО, это можно взвалить на плечи броузера - HTML5 позволяет, почитайте про дополнительные свойства типа required, size etc у input'ов.
на jQuery есть готовые валидаторы форм, с кастомными правилами проверки форматов. Что бы перехватить отправку, action оставьте пустым, по onsubmit="check_form();return false;". Здесь check_form - обработчик формы, в нем Ваш обработчик и должен быть ajax-запрос с вызовом Вашего work.php типа
response=$.ajax({url: 'work.php', dataType: 'text', async: false}).responseText;
, в response Ваш work поместит свой ответ, например success, если все ОК или сообщение об ошибке. Спокойно парсите response, страничка не перегружается... про sql-инъекции не забудьте, точнее про защиту от них.

Последний раз редактировалось Ilya_Nsk, 16.04.2014 в 14:06. Причина: автор всегда недоволен своим творением
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы русские буквы не вводились в определенные поля формы? yachainik Общие вопросы Javascript 6 13.02.2017 16:43
Как сделать локальную переменную глобальной?? Дмитрий Общие вопросы Javascript 8 02.11.2010 03:33
Как сделать такую галерею crisco Events/DOM/Window 4 23.12.2008 16:28
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 06:58
как сделать disabled element? subaru Общие вопросы Javascript 5 25.04.2008 22:26