Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Очистка адресной строки перед Очисткой формы
 
 автор: TetRiska   (22.02.2009 в 14:48)   письмо автору
 
 

Вобщем так дело такое...Очищаю я форму и в адресной строке появляется белиберда : reg.php?lo_gn=1&ps_wq=1&re_ps_wq=1&ma_il=1&qw_est=1&su_m=1
<button type="submit" onclick="document.forms[0].reset">Очистить</button>
Как перед очисткой формы убрать ее с адресной строки, чтобы было лишь reg.php ? Я так полагаю написать ф-цию которая будет ловить все параметры и прессующие параметрам значения и стирать перед очисткой формы. Но как реализовать то? :(

  Ответить  
 
 автор: sl1p   (22.02.2009 в 15:16)   письмо автору
 
   для: TetRiska   (22.02.2009 в 14:48)
 

• <button onclick="document.forms[0].reset()">Очистить</button>
• <input type="reset">

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 15:57)   письмо автору
 
   для: sl1p   (22.02.2009 в 15:16)
 

Обычный сброс не проходит :( Т.к. у меня есть фитбеки которые лишь при очистке формы сбрасываются. Пример тут http://krogcity.com/ Ставте кодировку утф-8, не пойму чего оно на виндовс перепрыгует

  Ответить  
 
 автор: sl1p   (22.02.2009 в 16:18)   письмо автору
 
   для: TetRiska   (22.02.2009 в 15:57)
 

я не могу спалить зачем на ресет баттоне type="submit" ?
Конечно в строке будет появляться "белиберда" потому что при очистке отправляется форма, не указан метод, стандартный GET.
<input type="reset" onclick="document.forms[0].reset()" value="clear">
и всё окей имхо (:

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 16:51)   письмо автору
4 Кб
 
   для: sl1p   (22.02.2009 в 16:18)
 

При
<input type="reset" onclick="document.forms[0].reset()" value="clear">
поля очищаются, в адресной строке все пучком, но дивы, где выводятся сообщения не возвращаются в исходное положение :(
В таком плане событие не срабатывает видать:( Надо думаю так:
<button type="reset" onclick="">Очистить</button> 
Остается лишь 1 вариант придать кнопке type='reset' и написать ф-цию и повесить ее на событие onclick='' ? я писал ф-цию которая бы очищала дивы, но форма начинает скакать...По началу у меня выводится форма и свободное пространство под текстовым полем где будет сообщение показано, сделал чтобы форма не скакала. И насчет первого дива проблема, не выходит правильно очистить, т.к. в нем и индикатор графический и текстовый. Я приложу работу, посмотрите пожалуйста.

  Ответить  
 
 автор: sl1p   (22.02.2009 в 18:33)   письмо автору
 
   для: TetRiska   (22.02.2009 в 16:51)
 

откуда ж браузер знает что там вам надо очищать?)
<input type="reset" onclick="for(var i = 0, d = document.forms[0].getElementsByTagName('DIV'), l = d.length; i < l; i++) d[i].innerHTML = '&nbsp;'" value="clear">

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 19:10)   письмо автору
 
   для: sl1p   (22.02.2009 в 18:33)
 

Очень хороший пример спасибо. Но.... :) Надо не забывать что у меня в первом диве 2 дива : графический и текстовый. Вот в этом загвоздка не малая :( Проверьте как было до и после очистки по ссылке http://krogcity.com/ А еще поле очистки вводя новые данные нарушается неподвижность формы :(

  Ответить  
 
 автор: sl1p   (22.02.2009 в 19:43)   письмо автору
 
   для: TetRiska   (22.02.2009 в 19:10)
 

<script type="text/javascript" language="javascript">
function xReset() {
    for(var i = 0, d = document.forms[0].getElementsByTagName('DIV'), l = d.length; i < l; i++)
    if(d[i].getAttribute('name') == 'report') d[i].innerHTML = ''
}
</script>
<input type="reset" onClick="xReset()">

Всем дивам которые нужно почистить укажите одинаковое имя (здесь <div name="report"></div>) и соответственно замените в скрипте.

  Ответить  
 
 автор: sl1p   (22.02.2009 в 19:50)   письмо автору
 
   для: sl1p   (22.02.2009 в 19:43)
 

даже можно сделать так, если захотите использовать ещё где-то:
<script type="text/javascript" language="javascript">
function resetTags($name) {
    for(var i = 0, d = document.getElementsByName($name), l = d.length; i < l; i++) d[i].innerHTML = ''
}
</script>

<div name="report"></div>
<input type="reset" onClick="resetTags('report')">

<span name="report2"></span>
<input type="reset" onClick="resetTags('report2')">

...

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 20:24)   письмо автору
 
   для: sl1p   (22.02.2009 в 19:43)
 

Так указывать нежелательно
d[i].innerHTML = '' 
, т.к. при очистке форма скакнет...А если поставить пробел, она останется в исходном положении, но при вводе новых данных форма растяниться , что недопустимо. И еще как в скрипте ново созданым дивам указать имя? Я их так создавал:
var indicator = document.createElement("div");
var indicator_i = document.createElement("div");
var text_ind = document.createElement("div");

  Ответить  
 
 автор: sl1p   (22.02.2009 в 21:14)   письмо автору
 
   для: TetRiska   (22.02.2009 в 20:24)
 

ну в данном случае:
indicator.setAttribute('name', 'myName');

зы. нащёт дивов, так это уже можно как угодно делать, можно создать переменную которая бы при первом вызове изменялась и тогда уже в зависимости от переменной чистить див так или так. Или как вариант, в ваших функциях которые пишут текст в див, перед записью очищать его.

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 21:16)   письмо автору
 
   для: sl1p   (22.02.2009 в 21:14)
 

благодарю уже решил :)
Придав ид всем дивам и написав ф-цию )
function Clear()
{
    document.getElementById("some_id_1").className = 'pc-indicator-inline';
    document.getElementById("some_id_2").innerHTML = '&nbsp;';
    document.getElementById("some_id_3").innerHTML = '<span class=\"pc-indicator-text pc-critical\">&nbsp;</span>';
    document.getElementById("STATUS").innerHTML = '&nbsp;';

  Ответить  
 
 автор: sl1p   (22.02.2009 в 21:19)   письмо автору
 
   для: TetRiska   (22.02.2009 в 21:16)
 

хе) хитро(:
но лучше всего будет перед записью, наоборот, чистить дивы.

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 21:36)   письмо автору
 
   для: sl1p   (22.02.2009 в 21:19)
 

Еще 1 моментик.
Чтобы автоматически в текстовое поле ввести текст после очистки надо делать так?
document.getElementById("lo_gn").value = 'Введите имя пользователя'; 

  Ответить  
 
 автор: sl1p   (22.02.2009 в 21:39)   письмо автору
 
   для: TetRiska   (22.02.2009 в 21:36)
 

до(:

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 21:45)   письмо автору
 
   для: sl1p   (22.02.2009 в 21:39)
 

Хммм прикол...но не отображается, видать очистка не дает тексту вставится чели?

  Ответить  
 
 автор: sl1p   (22.02.2009 в 21:55)   письмо автору
 
   для: TetRiska   (22.02.2009 в 21:45)
 

всё даёт(: смотрите ваш скрипт по измененю значений в первых двух полях (:

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 22:00)   письмо автору
 
   для: sl1p   (22.02.2009 в 21:55)
 

Не совсем понял :)

  Ответить  
 
 автор: sl1p   (22.02.2009 в 22:02)   письмо автору
 
   для: TetRiska   (22.02.2009 в 22:00)
 

может кнопка стандартного ресета работает позже скрипта (:

  Ответить  
 
 автор: TetRiska   (22.02.2009 в 22:25)   письмо автору
 
   для: sl1p   (22.02.2009 в 21:55)
 

сделал так:
<button type="reset" onclick="Clear();">Очистить</button>
и
function Clear()
{
    document.getElementById("some_id_1").className = 'pc-indicator-inline';
    document.getElementById("some_id_2").innerHTML = '&nbsp;';
    document.getElementById("some_id_3").innerHTML = '<span class=\"pc-indicator-text pc-critical\">&nbsp;</span>';
    document.getElementById("STATUS").innerHTML = '&nbsp;';
    document.getElementById("lo_gn").value = 'Введите имя пользователя';


не выводит в поле текст :(
видать ресет кнопки позднее срабатывает чем скрипт, а как сделать чтобы наоборот?
у меня есть ф-ция маски
function CreateTextMask(elementid, masktext)
{
    var element = document.getElementById(elementid);
    
    element.value = masktext;
    
    element.onfocus = function()
    {
        if (element.value == masktext)
        {
            element.className = "maskable-false";
            element.value = "";
        }
    }
    
    element.onblur = function()
    {
        if (element.value.length == 0)
        {
            element.className = "maskable-true";
            element.value = masktext;
        }
    }
}

использование
    CreateTextMask("lo_gn","Введите имя пользователя");
    CreateTextMask("ps_wq","Введите пароль");

Она при загрузке заполняет эти поля, можно ли както ее использовать после очистки?

Пошол другим путем :)
<input type="button" onclick="Clear();" value="Очистить">

и
    document.getElementById("ma_il").value = '';
    document.getElementById("qw_est").value = '';
    document.getElementById("su_m").value = '';


Спасибо за помощ

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования