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