Показать сообщение отдельно

  #1  
Старый 31.03.2010, 16:06
оlbaneс
Moderator - Level 7
Регистрация: 05.11.2007
Сообщений: 894
Провел на форуме:
5609275

Репутация: 1474


По умолчанию

вот функция генератора пароля
Код:
<script type="text/javascript">
 function getrandom()  {
var A = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","Z") ;
var b = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","y","z") ;
var dig = new Array("0","1","2","3","4","5","6","7","8","9") ;
var m = new Array();  //итоговоый массив из которого будут браться символы
var count = eval(document.forms[0].elements['count'].value);
var pass="" ;
var r,i=0;
  if (count=="") {alert('Введите длину пароля!') ; exit();}  //если поле пустое алерт
    else if (count>30) {alert('Введите число меньше 31') ; exit();}
         else       //длину пароля проверили идем дальше
 if( document.getElementById("1").checked){m = m.concat(A);}  //проверяем какие чекбоксы отметили
 if (document.getElementById("2").checked){ m = m.concat(b);}
 if (document.getElementById("3").checked){ m = m.concat(dig);}
 if (m==0) {alert('отметьте какие символы использовать') ; exit();} //если чекбоксы не отмечены алерт и ехит
 else {
     while (i<count)
        {    pass += m[Math.floor(Math.random() * m.length)]  ; //рандомим пароль
             i++;
        }
      }
 document.getElementById('qqq').innerHTML =pass; //выводим пароль в нужное поле
                     }  //end fuction
  </script>
если отметить все поля как надо то функция работает. проблемы с алертами и ехитами.
например если при ВСЕХ пустых полях нажать кнопку генерировать то аллерт
if (count=="") {alert('Введите длину пароля!') ; exit();} не выскакивает (а пока функцию до конца не дописал выскакивал )
а сейчас сразу выскакивает вот этот алерт
if (m==0) {alert('отметьте какие символы использовать') ; exit();} и нажимаю кнопку ок выводит сообшение ошибка сценария предполагается наличия объекта (указывает на ; (вот это место) exit()) и точно такая же ошибка сценария если указал большую длину пароля(только указвает на строчку к совему алерту).

что я не так делаю с алертами? почему первый пропускает, а на следующие выдает ошибку сценария?

вот на всякий случай целиком страничка
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1251">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <title> 
    </title>
    <style type="text/css">    body{     background-color: grey;     font-family: Arial,Helvetica,sans-serif     color: white;     }     TABLE { color: white;}     td  { border:white solid 1px cellspacing="0" }     h1 {color:goldenrod    }
    </style>
<script type="text/javascript">
 function getrandom()  {
var A = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","Z") ;
var b = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","y","z") ;
var dig = new Array("0","1","2","3","4","5","6","7","8","9") ;
var m = new Array();
var count = eval(document.forms[0].elements['count'].value);
var pass="" ;
var r,i=0;
  if (count=="") {alert('Введите длину пароля!') ; exit();}  //если поле пустое алерт
    else if (count>30) {alert('Введите число меньше 31') ; exit();}
         else       //длину пароля проверили идем дальше
 if( document.getElementById("1").checked){m = m.concat(A);}  //проверяем какие чекбоксы отметили
 if (document.getElementById("2").checked){ m = m.concat(b);}
 if (document.getElementById("3").checked){ m = m.concat(dig);}
 if (m==0) {alert('отметьте какие символы использовать') ; exit();} //если чекбоксы не отмечены алерт и ехит
 else {
     while (i<count)
        {    pass += m[Math.floor(Math.random() * m.length)]  ; //рандомим пароль
             i++;
        }
      }
 document.getElementById('qqq').innerHTML =pass; //выводим пароль в нужное поле
                     }  //end fuction
  </script>
  </head>
  <body>
    <tr>
      <td colspan="2" >
        <h1 align="center" ><b>Генератор пароля </b>  </h1>     </td>
    </tr>
    <form>
      <table width="300"   align="center"  border="1"  bgcolor="DarkRed" cellpadding="10" cellspacing="0"   >
        <tbody>
          <tr>
            <td width='75%' align="right">Количество символов:</td>
            <td  >
              <input name="count" size="5" type="text" maxlength="2" >  </td>
          </tr>
          <tr>
            <td align="right">  A-Z</td>                  <td>
              <input name="hi" type="checkbox" id="1">
              <br> </td>
          </tr>
          <tr>
            <td align="right"> a-z</td>                        <td>
              <input name="slow" type="checkbox" id="2">
              <br>   </td>
          </tr>
          <tr>
            <td align="right">  0-9</td>                               <td>
              <input name="num" type="checkbox" id="3">
              <br> </td>
          </tr>
          <tr>
            <td colspan="2" align="right">
              <input   value="Сброс" type="reset">
              <input value="Генерировать" type="button" name="generate"  onClick="getrandom();">                       </td>
          </tr>
        </tbody>
      </table>
      <br>
      <br>
      <table width="300"   align="center"  border="1"  bgcolor="DarkRed" cellpadding="10" cellspacing="0"   >
        <tbody>
          <tr>
            <td height="80px" solid=5px  colspan="2" align="center" >
              <p id="qqq">Результат
              </p></td>
          </tr>
        </tbody>
      </table>
    </form>
  </body>
</html>

Последний раз редактировалось оlbaneс; 31.03.2010 в 16:10..
 
Ответить с цитированием