Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Проверка формы для отправки данных


Автор: suzuka 7.2.2007, 02:28
Кто знает, помогите пожалуйста решить эту проблему. Никак не сделать форму для отправки данных. 
Код

<html>
<head>
   <title>Untitled</title>
   <script LANGUAGE="JavaScript">
   <!--
   function display(){
   DispWin=window.open('','NewWin','toolbar=no,ststus=no,width=300,height=200')
   DispWin.document.write("<UL><LI><B>Имя</B>"+document.form1.yourname.value);
   DispWin.document.write("<UL><LI><B>Фамилия</B>"+document.form1.yourname.value);
   DispWin.document.write("<UL><LI><B>e-mail</B>"+document.form1.adress.value);
   DispWin.document.write("</UL>");
   }
function chkForm()
   {
      if (form1.inp1.value =="");
      
   {
      alert("Пожалуйста, введите текст");
      form1.inp1.focus();
      return false;
   }
   }
   function validate() {
    if (document.form1.yourname.value.length < 1) {
       window.alert("Введите пожалуйста своё Имя");
      return false;
   }
    if (document.form1.address.value.length < 1) {
       window.alert("Введите пожалуйста свою Фамилию");
      return false;
   }
    if (document.form1.phone.value.length < 1) {
       window.alert("Введите пожалуйста свой e-mail");
      return false;
   }
    /* if (document.form1.phone.value.str.replace ){
       window.alert("Введите пожалуйста свой e-mail");
      return false;
      }*/
      function checkform()
      {
      var a=/\@[a-z]+\./;
      //var=form1.phone.value;
      
   }
   return true;
}
   -->
   </SCRIPT>
</head>
<body>
<H1>Моя форма</H1>
<H2>Введите данные</H2>
<form name="form1" action="mailto:user@host.com" enctype="text/plain"
 onSubmit="return validate();">
<B>Имя:</B> <INPUT TYPE="TEXT" LENGTH="20" NAME="yourname">
<P>
<B>Фамилия:</B> <INPUT TYPE="TEXT" LENGTH="30" NAME="address">
<P>
<B>e-mail: </B> <INPUT TYPE="TEXT" LENGTH="15" NAME="phone">
<P>
<INPUT TYPE="SUBMIT" OnClick="Checkform()" VALUE="Отправить">
</form>
</body>
</html>

Там нужно, чтобы была проверка на пустые строки и что введен e-mail, для этого нужно сделать проверку на наличие "@".
Так вот, показывает ошибку и ничего проверять не хочет((

Автор: pythonwin 7.2.2007, 06:54
http://forum.vingrad.ru/topic-135764/0.html#look
http://forum.vingrad.ru/topic-26547.html
http://forum.vingrad.ru/topic-26405.html
http://forum.vingrad.ru/topic-53916.html
http://forum.vingrad.ru/topic-36336.html

Во вложении код с функциями проверки форм

Автор: 12345c 7.2.2007, 13:32
suzuka, cnh.40
function checkform()
и стр. 64
<INPUT TYPE="SUBMIT" OnClick="Checkform()" VALUE="Îòïðàâèòü">
 - имена не совпадают. JS различает большие и маленькие буквы.

Автор: suzuka 7.2.2007, 21:40
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <script LANGUAGE="JavaScript">
    <!--
    function display(){
    DispWin=window.open('','NewWin','toolbar=no,ststus=no,width=300,height=200')
    DispWin.document.write("<UL><LI><B>Èìÿ</B>"+document.form1.yourname.value);
    DispWin.document.write("<UL><LI><B>Ôàìèëèÿ</B>"+document.form1.yourname.value);
    DispWin.document.write("<UL><LI><B>e-mail</B>"+document.form1.adress.value);
    DispWin.document.write("</UL>");
    }
function chkForm()
    {
        if (form1.inp1.value =="");
        
    {
        alert("Ïîæàëóéñòà, ââåäèòå òåêñò");
        form1.inp1.focus();
        return false;
    }
    }
    function validate() {
    if (document.form1.yourname.value.length < 1) {
        window.alert("Ââåäèòå ïîæàëóéñòà ñâÈìÿ");
        return false;
    }
    if (document.form1.address.value.length < 1) {
        window.alert("Ââåäèòå ïîæàëóéñòà ñâîþ Ôàìèëèþ");
        return false;
    }
    if (document.form1.phone.value.length < 1) {
        window.alert("Ââåäèòå ïîæàëóéñòà ñâîé e-mail");
        return false;
    }
     /* if (document.form1.phone.value.str.replace ){
        window.alert("Ââåäèòå ïîæàëóéñòà ñâîé e-mail");
        return false;
        }*/
        function checkform() 
         {
var str = elem.value;
   var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
   if (!str.match(re)) {
       alert(s1);
       setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
       return false;
   } else {
       return true;
   }

        
    }
    return true;
}
    -->
    </SCRIPT>
</head>

<body>
<H1>Ìîÿ ôîðìà</H1>
<H2>Ââîäèòå äàííûå</H2>

<form name="form1" action="mailto:user@host.com" enctype="text/plain"
 onSubmit="return validate();">
<B>Èìÿ:</B> <INPUT TYPE="TEXT" LENGTH="20" NAME="yourname">
<P>
<B>Ôàìèëèÿ:</B> <INPUT TYPE="TEXT" LENGTH="30" NAME="address">
<P>
<B>e-mail: </B> <INPUT TYPE="TEXT" LENGTH="15" NAME="phone">
<P>
<INPUT TYPE="SUBMIT" OnClick="checkform()" VALUE="Îòïðàâèòü">


</form>
</body>
</html>

12345c, спасибо. чёто я совсем не внимательный..
А где вы говорите, я должен прочитать перечисленные вами стр.?
Также благодарю pythonwin, за его прикрепленный файл. Я взял оттуда кусочек скрипта, но всё равно не получается..
Он говорит, что в этой строке должен быть элемент. Помогите. - <INPUT TYPE="SUBMIT" OnClick="checkform()" VALUE="Îòïðàâèòü">

Автор: suzuka 8.2.2007, 19:24
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
    <script LANGUAGE="JavaScript">
    <!--
    function display(){
    DispWin=window.open('','NewWin','toolbar=no,ststus=no,width=300,height=200')
    DispWin.document.write("<UL><LI><B>Имя</B>"+document.form1.yourname.value);
    DispWin.document.write("<UL><LI><B>Фамилия</B>"+document.form1.yourname.value);
    DispWin.document.write("<UL><LI><B>e-mail</B>"+document.form1.adress.value);
    DispWin.document.write("</UL>");
    }
function chkForm()
    {
        if (form1.inp1.value =="");
        
    {
        alert("Пожалуйста, введите текст");
        form1.inp1.focus();
        return false;
    }
    }
    function validate() {
    if (document.form1.yourname.value.length < 1) {
        window.alert("Введите пожалуйста своё Имя");
        return false;
    }
    if (document.form1.address.value.length < 1) {
        window.alert("Введите пожалуйста свою Фамилию");
        return false;
    }
    if (document.form1.phone.value.length < 1) {
        window.alert("Введите пожалуйста свой e-mail");
        return false;
    }
     /* if (document.form1.phone.value.str.replace ){
        window.alert("Введите пожалуйста свой e-mail");
        return false;
        }*/
        /*function checkform() 
        {
        var a=/\@[a-z]+\./;
        //var=form1.phone.value;*/
        
    }
    function checkform(elem, s1) {
var str = elem.value;
   var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
   if (!str.match(re)) {
       alert(s1);
       setTimeout("focusElement('" + elem.form1.name + "', '" + elem.name.form1 + "')", 0);
       return false;
   } else {
       return true;
   }
}
    /*return true;
}*/
    -->
    </SCRIPT>
</head>
<body>
<H1>Моя форма</H1>
<H2>Вводите данные</H2>
<form name="form1" action="mailto:user@host.com" enctype="text/plain"
 onSubmit="return validate();">
<B>Имя:</B> <INPUT TYPE="TEXT" LENGTH="20" NAME="yourname">
<P>
<B>Фамилия:</B> <INPUT TYPE="TEXT" LENGTH="30" NAME="address">
<P>
<B>e-mail: </B> <INPUT TYPE="TEXT" LENGTH="15" NAME="phone">
<P>
<INPUT TYPE="SUBMIT" OnClick="checkform(elem.value, s1)" VALUE="Отправить">
</form>
</body>
</html>


Товарищи! Мы столкнулись с действительно серьезной проблемой!
Сколько бы не пытался, показывает на 77строку. <INPUT TYPE="SUBMIT" OnClick="checkform(elem.value, s1)" VALUE="Îòïðàâèòü"> И он смеет утверждать, что элемент "elem" отсутствует. 
Сейчас буду читать тысячестраничного Флэнегана. Однако, если кто знает, киньте мне подсказку, пожалуйста.

© Converted by 12345c & Firefox & Shtirlitz smile

Автор: pythonwin 9.2.2007, 07:24
suzuka, пожалуйста, приатач исходный файл как вложение в оригинальной кодировке, а то на код страшно смотреть smile

Автор: suzuka 9.2.2007, 08:41
Сейчас найду код..

Автор: AKS 9.2.2007, 09:16
Цитата(suzuka @  8.2.2007,  19:24 Найти цитируемый пост)
И он смеет утверждать, что элемент "elem" отсутствует

Судя по коду у Вас также нет оснований утверждать, что "elem" присутствует. Нет в коде глобально доступного "elem", чтобы можно было писать OnClick="checkform(elem.value, s1)"...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)