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

  #2  
Старый 31.03.2010, 16:51
d_x
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме:
4137635

Репутация: 2407


По умолчанию

eval лишним был. Я добавил проверку на правильность введенного числа регуляркой.
Код:
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 = document.forms[0].elements['count'].value;
var pass="" ;
var r,i=0;
var reg=/^\d+$/;

if (!reg.test(count))
{
  alert('Введите длину пароля!');
  return;
}  //если поле пустое алерт

if (count>30)
{
  alert('Введите число меньше 31');
  return;
}

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.length==0)
{
  alert('отметьте какие символы использовать');
  return;
} //если чекбоксы не отмечены алерт и ехит


while (i<count)
{
  pass += m[Math.floor(Math.random() * m.length)]  ; //рандомим пароль
  i++;
}

document.getElementById('qqq').innerHTML =pass; //выводим пароль в нужное поле
}  //end fuction
 
Ответить с цитированием