Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Вниз

проблема с событием 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
2-1193292661
FER
2007-10-25 10:11
2007.11.18
редактирование сводки файлов


15-1192696869
Shlomo
2007-10-18 12:41
2007.11.18
С D7 проект перешёл в D2006 и стал требовать DsnDBCst.pas/dcu – у


4-1178966232
KioLie
2007-05-12 14:37
2007.11.18
Кнопка приложения в taskbar е


2-1193675500
Neo
2007-10-29 19:31
2007.11.18
что не так ?


2-1193423882
alexlp
2007-10-26 22:38
2007.11.18
Сортировка ListView e-mail





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский