Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

проблема с событием onSubmit   Найти похожие ветки 

 
исследователь   (2007-10-17 13:51) [0]

Здравствуйте, уважаемые! Понимаб, что оффтоп, но возникла следующая проблема: при использовании данного события скрипт, которому я передаю данные, перестает нормально считывать данные из переменной $_POST (пробовал с $_GET - результат тот же). Вот код формочки (больше ничего кроме <html>..</html> и прочих вспомогательных тегов, на странице нет):


<form action="php.php" method="post" name="anketa" onSubmit="return mydisable()">
<table cellspacing="0" cellpadding="0">
 <tr>
  <td colspan="2"> <p>Введите пожалуйста свои данные</p>
 <tr align="left" valign="middle">
  <td>
   <p>Имя*</p>
  <td >
   <input type="Text" id="name" size="15" maxlength="50" name="firstname" onKeyDown="check_()" onKeyPress="check_()" onKeyUp="check_()" value=""><br>
 <tr align="left" valign="middle">
  <td>
   <p>Фамилия*</p>
  <td >
   <input type="Text" id="fam" size="15" maxlength="50" name="surname" onKeyDown="check_()" onKeyPress="check_()" onKeyUp="check_()" "" value=""><br>
 <tr align="left" valign="middle">
  <td>
   <p>e-mail*</p>
  <td>
   <input type="Text" name="mail" id="mail" size="15" maxlength="50" onKeyDown="check_()" onKeyPress="check_()" onKeyUp="check_()" value=""><br>
 <tr>
  <td colspan="2" align="center">
   <input type="submit"  value="Отправить" name="ok" id="ok" disabled >    <input type="reset" name="cancel" id="cancel">  
</table>
 </form>


код яваскрипта, подключаемого к странице:


// Функиця проверки наличия в текстовых полях формы
function check_(){
 if ((document.getElementById("name").value.length!=0)&&(document.getElementById("ma il").value.length!=0)&&(document.getElementById("fam")!=0)){  
  document.getElementById("ok").disabled=false;
  }
 else
   document.getElementById("ok").disabled=true;
 return true    
};

// Функция установления параметра disable для всех элементов формы при отправке данных в php-файл
function mydisable(){
    var a=new Array("name","fam","mail","ok","cancel");
 for (var i=0;i<a.length;i++)
  document.getElementById(a[i]).disabled=true
 return true;
}

function my_f(){
 alert("переменная:"+disable);      
 if (disable)
  parent.document.getElementById("name").disabled=false
 else
  parent.document.getElementById("name").disabled=true;  
 return true;
}


код php.php


<?php
//Проверка правильности ввода имени
if(preg_match("/^[a-zA-Z]+$/", $_POST["firstname"])) {
 $disable=0; //$disable-переменная, в которую заноситься значение аттрибута disabled для текстового поля name
 echo "Данные введены правильно\n";}
else{
 $disable=1;
 echo "Данные введены НЕ правильно\n";}
echo "<script type="text/javascript" src="scripts.js" language="JavaScript"></script>\n";
echo "<script type="text/javascript" language="JavaScript">\n";
echo "var disable=".$disable."\n";
echo "my_f()\n";
echo "</script>\n";
?>


 
_xxx_   (2007-10-17 15:01) [1]


function mydisable(){     var a=new Array("name","fam","mail",
"ok","cancel");  for (var i=0;i<a.length;i++)   document.
getElementById(a[i]).disabled=true  return true; }


Зачем disabl"ить все элементы? После этого их "value" исключается из данных, отсылаемых на сервер. Насколько я знаю. Проще так:
<input type="submit"  value="Отправить" name="ok" id="ok" disabled onClick="javascript:document.getElementById("ok").disabled=true;">
(Отключаем кнопку для исключения повторной отправки).
К слову о самой функции - смысл городить забор когда есть массив document.forms["anketa"].elements ?

И в пхп-скрипте -  disabl"ить правильно заполненные поля, - это чтобы оставить неправильные, чтоб пользователю было явно указано? А вдруг пользователь захочет еще что-то исправить? Дурной тон. Обычно это дело помечают звездочкой или текстом красного цвета.


 
исследователь   (2007-10-17 16:40) [2]

Спасибо. Код не мой, попросили помочь с одной проблемой, а столкнулся еще и с этой. Про диазбледные элементы не знал. А если сделать enabled=false?


 
_xxx_   (2007-10-17 17:41) [3]


> если сделать enabled=false?

Помоему, то-же самое только вид сбоку...попробуй )) Но опять таки, дурной тон, имхо. Если уж так приспичило, можно использовать атрибут "readonly".



Страницы: 1 вся ветка

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
4-1178126275
Альберт
2007-05-02 21:17
2007.11.18
перевод 8 битного битмапа в 24 битный


15-1192363869
Sergey Masloff
2007-10-14 16:11
2007.11.18
Тупой вопрос про Northwind


2-1193495233
@!!ex
2007-10-27 18:27
2007.11.18
Перетаскивание элементов в TTreeView


2-1193126277
Sergey2
2007-10-23 11:57
2007.11.18
длина строки в пикселях


15-1192546272
oldman
2007-10-16 18:51
2007.11.18
Еще один вопрос по русскому.