Страницы: 1
Как фаерфоксе сделать так что бы поля формы не сбрасывались просле возврата return false?
Сделал форму.
На кнопку повесил скрипт поверки на корректность данных.
напимер:
<script>
...
if (check)
}
thisForm.submit();
} else {
return false;
}
...
</script>
при return 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 :
интересно такая проблема только у меня ....
Отсутствует
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 :
Кстати, вот эта конструкция вообще лишена смысла:
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 обрезает лишние пробелы.)
Отсутствует
Большое спасибо!!!
простите меня за этот код просто очень большой шаблон и пытался просто суть отразить
все работает корректно, просто на кнопке не был указан type="button". В FF если для кнопки не указан type , то интерпритируется как type="submit".
Отсутствует
Страницы: 1