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

HTML+CSS+JavaScript

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

 

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

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

тема: валидация формы
 
 автор: boot   (01.04.2008 в 12:35)   письмо автору
 
 

<script type="text/javascript" language="javascript">
var started = 0;

function email_checker(zx) {

var z=1;
var email=zx;
var zplus=0;
var dot=0;
for (var I=0; I<email.length; I++) {
em=email.charAt(I);
em1=email.charAt(I+1);

if (em=='*' | em=='%' | em=='!' | em=='$' | em=='&' | em=='(' | em==')' | em==' ' | em=='#' | em=='/' | em==',' | em=='?' | em=='+' | em=='=' | em=='[' | em==']' | em=='}' | em=='{') {
z=0;
}
if ((em=='@' & em1=='.') | (em=='.' & em1=='@')) {
z=0;
}
if (em=='@') {
zplus++;
}
if (zplus>0) {
if (em=='.') {
dot++;
}
}
}

em2=email.charAt(email.length-1);
em3=email.charAt(0);
if (em2=='_' | em3=='_' | em2=='.' | em3=='.' | em3=='@') {z=0;}
if (zplus!=1 | dot==0) {z=0;}

return z;
}



function sendform() {

forma = document.form1;
var re = /^([0-9]+)$/;
st = 1;
message = '';

if (forma.paya.value=='' & forma.payb.value=='' & forma.payc.value=='') {
message = message + 'Следует выбрать хотя бы один из продуктов\n';
st = 0;
}

if ((forma.kolupa.value=='' & forma.paya.value!=='')||(forma.kolupb.value=='' & forma.payb.value!=='')||(forma.kolupc.value=='' & forma.payc.value!=='')) {
message = message + 'Следует заполнить поле "Количество"\n';
st = 0;
}

if ((forma.kolupa.value!=='' & forma.paya.value=='')||(forma.kolupb.value!=='' & forma.payb.value=='')||(forma.kolupc.value!=='' & forma.payc.value=='')) {
message = message + 'Следует заполнить поле "Выбрать продукт"\n';
st = 0;
}

if((forma.kolupa.value.match(re) == null & forma.kolupa.value!=='')||(forma.kolupb.value.match(re) == null & forma.kolupb.value!=='')||(forma.kolupc.value.match(re) == null & forma.kolupc.value!=='')){
message = message + 'Ошибочный формат поля "Количество"\n';
st = 0;
}


if (forma.fio.value=='') {
document.getElementById("fio_id").style.color='#ff0000';
message = message + 'Следует заполнить поле "Фамилия Имя Отчество"\n';
st = 0;
}
else{document.getElementById("fio_id").style.color='#666666';}

if (forma.area.value=='') {
document.getElementById("area_id").style.color='#ff0000';
message = message + 'Следует выбрать "Область"\n';
st = 0;
}
else{document.getElementById("area_id").style.color='#666666';}

if (forma.city.value=='') {
document.getElementById("city_id").style.color='#ff0000';
message = message + 'Следует заполнить поле "Город или населенный пункт"\n';
st = 0;
}
else{document.getElementById("city_id").style.color='#666666';}

if (forma.post_address.value=='') {
document.getElementById("post_address_id").style.color='#ff0000';
message = message + 'Следует заполнить поле "Почтовый адрес"\n';
st = 0;
}
else{document.getElementById("post_address_id").style.color='#666666';}


if ((forma.post_index.value=='')||(forma.post_index.value.match(re) == null)){
document.getElementById("post_index_id").style.color='#ff0000';
}
else{document.getElementById("post_index_id").style.color='#666666';}

if (forma.post_index.value=='') {

message = message + 'Следует заполнить поле "Почтовый индекс" \n';
st = 0;
}

if(forma.post_index.value.match(re) == null & forma.post_index.value!==''){

message = message + 'Ошибочный формат поля "Почтовый индекс"\n';
st = 0;
}

if ((forma.tel.value=='')||(forma.tel.value.match(re) == null)){
document.getElementById("tel_id").style.color='#ff0000';
}
else{document.getElementById("tel_id").style.color='#666666';}

if (forma.tel.value=='') {
message = message + 'Следует заполнить поле "Код - Телефон"\n';
st = 0;
}

if(forma.tel.value.match(re) == null & forma.tel.value!==''){
message = message + 'Ошибочный формат поля "Код - Телефон"\n';
st = 0;
}

if ((forma.email.value=='')||(email_checker(forma.email.value)==0)){
document.getElementById("email_id").style.color='#ff0000';
}
else{document.getElementById("email_id").style.color='#666666';}

if (forma.email.value=='') {
message = message + 'Следует заполнить поле "E-mail"\n';
st = 0;
}

if (email_checker(forma.email.value)==0 & forma.email.value!=='') {
message = message + 'Ошибочный формат "E-mail"\n';
st = 0;
}

if (st==0) {
for(i=0; i<1; i++){
document.write("<tr ><td colspan='2'><table border='1' bgcolor='red' align='center' cellpadding='0' class='zakazvalid' cellspacing='0' ><tr><td class='valid'>");
document.write(message);
document.write("</td></tr></table></td></tr>")}
else {
forma.submit();
}}


}



</script>
<div class="normal" style="vertical-align: top; text-align: center; padding-top: 15px; margin: 0px;">

<form name="form1" method="POST" action="/zakaz.htm">
<TABLE cellSpacing="0" cellPadding="5" width="510" border="0" align="center">
<TR>
<td align="center" width="260" valign="middle" >
<span class='bold'><b>Количество</b></span>
</TD>
<TD align="center" >
<span class='bold'><b>Наименование продукта</b></span>
</TD>
</TR>
<TR>
<TD vAlign="top" align="center" >
<INPUT style="WIDTH: 30px" name="kolupa" value="" >
</TD >
<TD vAlign="top" align="left" >
<SELECT size="1" name="paya" >
<OPTION value="" selected>------------ Выберите продукт ------------</OPTION>
<OPTION value="1.1 (500 г)"> 1.1 (500 г)</OPTION>
<OPTION value="1.1 (25 капсул)">1.1 (25 капсул)</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<TD vAlign="top" align="center">
<INPUT style="WIDTH: 30px" name="kolupb" value="" >
</TD>
<TD vAlign="top" align="left">
<SELECT size="1" name="payb">
<OPTION value="" selected>------------ Выберите продукт ------------</OPTION>
<OPTION value="1.1 (500 г)">1.1 (500 г)</OPTION>
<OPTION value="1.1 (25 капсул)">1.1 (25 капсул)</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<TD vAlign="top" align="center">
<INPUT style="WIDTH: 30px" name="kolupc" value="" >
</TD>
<TD vAlign="top" align="left">
<SELECT size="1" name="payc">
<OPTION value="" selected>------------ Выберите продукт ------------</OPTION>
<OPTION value="1.1 (500 г)">1.1 (500 г)</OPTION>
<OPTION value="1.1 (25 капсул)">1.1 (25 капсул)</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<td width="260" valign="middle">
<span class="order_text" id="fio_id"><label for="fio">Фамилия Имя Отчество</label><sup class='star'>*</sup></span>
</TD>
<TD vAlign="top" align="left" valign="middle">
<INPUT style="WIDTH: 250px" name="fio" id="fio" value="" >
</TD>
</TR>
<TR>
<td width="260" valign="middle">
<span class="order_text" id="area_id"><label for="area">Область</label><sup class="star">*</sup></span>
</TD>
<td valign="middle">
<SELECT size="1" name="area" id="area">
<OPTION value="" selected>------------ Выберите oбласть ------------</OPTION>
<OPTION value="АР Крым">АР Крым</OPTION>
<OPTION value="Винницкая">Винницкая</OPTION>
<OPTION value="Волынская">Волынская</OPTION>
<OPTION value="Днепропетровская">Днепропетровская</OPTION>
<OPTION value="Донецкая">Донецкая</OPTION>
<OPTION value="Житомирская">Житомирская</OPTION>
<OPTION value="Закарпатская">Закарпатская</OPTION>
<OPTION value="Запорожская">Запорожская</OPTION>
<OPTION value="Ивано-Франковская">Ивано-Франковская</OPTION>
<OPTION value="Киевская">Киевская</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<td width="260">
<span class="order_text" id="city_id"> <label for="city">Город или населенный пункт</label><sup class="star">*</sup> </span>
</TD>
<TD vAlign="top" align="left">
<INPUT style="WIDTH: 250px" name="city" id="city" value="" >
</TD>
</TR>
<TR>
<TD width="260">
<label for="stat" class="order_text">Район</label>
</TD>
<TD vAlign="top" align="left">
<INPUT style="WIDTH: 250px" name="stat" id="stat" value="">
</TD>
</TR>
<TR>
<td width="260">
<span class="order_text" id="post_address_id"><label for="post_address">Почтовый адрес (ул., дом, кв.)</label><sup class="star">*</sup></span>
</TD>
<TD vAlign="top" align="left">
<INPUT style="WIDTH: 250px" name="post_address" id="post_address" value="" >
</TD>
</TR>
<TR>
<td width="260">
<span class="order_text" id="post_index_id"><label for="post_index">Почтовый индекс</label><sup class="star">*</sup></span>
</TD>
<TD vAlign="top" align="left">
<INPUT style="WIDTH: 50px" maxLength="5" name="post_index" id="post_index" value="" >
</TD>
</TR>
<TR>
<td width="260">
<span class="order_text" id="tel_id"><label for="tel">Код - Телефон</label><sup class="star">*</sup></span>
</TD>
<TD vAlign="top" align="left">
<INPUT style="WIDTH: 200px" name="tel" id="tel" value="" >
</TD>
</TR>
<TR>
<td width="260">
<span id="email_id" class="order_text" ><label for="email">E-mail </label><sup class="star">*</sup></span>
</TD>
<TD vAlign="top" align="left">
<INPUT style="WIDTH: 200px" name="email" id="email" value="" class="textinput" >
</TD>
</TR>
<TR>
<td width="260">
<span id="article_id" class="order_text"><label for="article">Примечание</label></span>
</TD>
<td>
<TEXTAREA style="WIDTH: 250px" name="article" id="article" rows="8" cols="200" ></TEXTAREA>
</TD>
</TR>
<tr>
<td COLSPAN="2" align="center">
<INPUT type="button" value="Заказать" class="submit" onClick="sendform();">
</td>
</tr>
<tr>
<td COLSPAN="2" align="left">
<span class="order_text" ><sup class="star">*</sup> - Обязательное поле</span>
</td>
</tr>
</TBODY>
</TABLE>
</form>
</div>





почему при нажатии кнопки не происходит проверка формы, я же вызываю функцию onClick="sendform();"

   
 
 автор: Crux   (01.04.2008 в 12:38)   письмо автору
 
   для: boot   (01.04.2008 в 12:35)
 

forma = document.forms.form1;

   
 
 автор: boot   (01.04.2008 в 12:45)   письмо автору
 
   для: Crux   (01.04.2008 в 12:38)
 

написал forma = document.forms.form1;
но все ровно никаких изменений

   
 
 автор: sim5   (01.04.2008 в 13:15)   письмо автору
 
   для: boot   (01.04.2008 в 12:45)
 

Уберите событие onClick с кнопки, и вызывайте функцию по onsubmit формы.
<form name="form1" method="POST" action="/zakaz.htm" onsubmit="return sendform(this)">

Добавте в свою функцию аргумент, чтобы не печать имя формы (а можете и печать, дело хозяйское). Функция должна всегда возвращать false, в случае неправильного заполнения того или иного поля. Откорректируйте свою функцию, а заодно и упростите, уж больно громоздкая она у вас.

   
 
 автор: boot   (01.04.2008 в 13:49)   письмо автору
 
   для: sim5   (01.04.2008 в 13:15)
 

но в этом случае сообщение об ошибках выводится не поверх формы, а отдельно(только сообщение без формы внизу)

   
 
 автор: sim5   (01.04.2008 в 14:21)   письмо автору
 
   для: boot   (01.04.2008 в 13:49)
 

В каком таком случае?

   
Rambler's Top100
вверх

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