Форум: "Прочее";
Текущий архив: 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.104 c