Полезная информация

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№120-11-2006 11:50:58

violator
Участник
 
Группа: Members
Зарегистрирован: 17-11-2006
Сообщений: 6

Как FF сделать так чтобы поля формы не сбрасывались при retun false?

Как фаерфоксе сделать так что бы поля формы не сбрасывались просле возврата return false?
Сделал форму.
На кнопку повесил скрипт поверки на корректность данных.
напимер:
<script>
...
if (check)
}
thisForm.submit();
} else {
return false;
}
...
</script>


при return false все заполненые поля в форме сбрасываются. Под ИЕ все работает корректно.
Помогите плиз...

Отсутствует

 

№220-11-2006 13:17:47

Dark-Demon
Участник
 
Группа: Members
Зарегистрирован: 20-02-2006
Сообщений: 1278

Re: Как FF сделать так чтобы поля формы не сбрасывались при retun false?

приведи что-ли более полный код...


!

Отсутствует

 

№320-11-2006 14:28:34

violator
Участник
 
Группа: Members
Зарегистрирован: 17-11-2006
Сообщений: 6

Re: Как FF сделать так чтобы поля формы не сбрасывались при retun false?

<form name="createForm"  width="100%" enctype="multipart/form-data" method="post">

<b>Имя</b><input type="text" maxlength="20" style="text-align:left;width: 300px" id="id_name" name="n_name" value="">
<b>Фамилия</b><input type="text" maxlength="40" style="text-align:left;width: 300px" id="id_namef" name="n_namef" value="">

<scriprt>
function controlT() {
var id_name = document.getElementById('id_name');
var id_namef = document.getElementById('id_namef');
if (id_name.value!=null || id_name.value != "" || trim(id_name.value != "") ) {
  if (id_namef.value!=null || id_namef.value != "" || trim(id_namef.value != "") ) {
     createForm.submit();
  } else {
     return false; 
  }
} else {
return false;
}

}
</scriprt>

<button onClick="controlT();">Создать</button>

Добавлено Пнд 20 Ноя 2006 14:31:14 :
интересно такая проблема только у меня ....

Отсутствует

 

№420-11-2006 15:21:11

Yan
Участник
 
Группа: Extensions
Откуда: Москва
Зарегистрирован: 27-02-2005
Сообщений: 1019

Re: Как FF сделать так чтобы поля формы не сбрасывались при retun false?

violator
Поля не сбрасываются, просто всё равно происходит отправка формы.
По стандарту элемент <button> по умолчанию должен отправлять форму:

17.5 Элемент BUTTON
...
Определения атрибутов
...
type = submit|button|reset  [CI]
    Объявляет тип кнопки. Возможные значения:

        * submit: Создает кнопку отправки. Это значение используется по умолчанию.
        * reset: Создает кнопку сброса.
        * button: Создает другую кнопку.

Чтобы предотвратить отправку формы, можно:
1. Указать кнопке тип button:

<button type="button" onClick="controlT();">Создать</button>

Тогда return false в controlT можно будет вообще убрать.
2. Сделать через return false, как Вы и хотели, но нужно указать return в onClick:

<button onClick="return controlT();">Создать</button>

Добавлено Пнд 20 Ноя 2006 15:35:54 :
Кстати, вот эта конструкция вообще лишена смысла:

Выделить код

Код:

if (id_name.value!=null || id_name.value != "" || trim(id_name.value != "") )

1. id_name.value!=null будет всегда true, т.к. value у текстового поля не может принимать значение null.
Получается, что эта конструкция никакой проверки не производит.
2. Вместо trim(id_name.value != "") наверно имелось в виду trim(id_name.value) != ""
Но до этого места проверка даже не дойдёт, т.к. перед этим Вы проверяете id_name.value != "", и при любом непустом value вся конструкция опять таки примет значение true.

Короче, правильно будет записать:

Выделить код

Код:

function controlT() {
  var id_name = document.getElementById('id_name');
  var id_namef = document.getElementById('id_namef');
  if ((trim(id_name.value)!= "")&&(trim(id_namef.value)!= "")) {
     createForm.submit();
  } else {
     return false; 
  }
}

(Я предполагаю, что функция trim обрезает лишние пробелы.)

Отсутствует

 

№521-11-2006 12:13:25

violator
Участник
 
Группа: Members
Зарегистрирован: 17-11-2006
Сообщений: 6

Re: Как FF сделать так чтобы поля формы не сбрасывались при retun false?

Большое спасибо!!!
простите меня за этот код просто очень большой шаблон и пытался просто суть отразить :)
все работает корректно, просто на кнопке не был указан type="button". В FF если для кнопки не указан type , то интерпритируется как type="submit".

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]