Передать значение функции в value inputа
Всем привет.
Столкнулся с проблемой:
Скрипт генерации паролей с выводом результата в div был через id элемента, а мне нужен был результат в input для записи в БД.
Вот я немного его модернизировал, но в Мозиле пароль не генерится.
Вернее из cmsки в мозиле не работает, а если просто файлик с компа загружать, то работает. Но в опере, хроме и ИЕ работает и из cmsки.
Подскажите, пожалуйста,в чём может быть ошибка и как исправить этот косяк.
Вот код скрипта:
<div class="jsPassGenWrapper">
<div id="jsPassGenForm"></div>
<input type="text" id="jsPassGenForm2" name="jsPassGenForm"/>
<div class="jsPassGenCtrls">
<input type="hidden" id="jsPassGenUseNumsCB" checked="checked" />
<label for="jsPassGenUseNumsCB">Use numbers</label><br />
<input type="button" value="Create password" onClick="runPassGen()" />
</div>
<script type="text/javascript">
/* @param id - идентификатор блока для вставки паролей)
@param syllableNum - количество слогов в пароле
@param numPass - количество количество паролей вставляемых в блок
@param useNums - использовать числа или нет */
function jsPassGen(id, syllableNum, numPass, useNums) {
id = typeof(id) != 'undefined' ? id : 'jsPassGenForm'; // параметры по умолчанию
syllableNum = typeof(syllableNum) != 'undefined' ? syllableNum : 3;
numPass = typeof(numPass) != 'undefined' ? numPass : 1;
useNums = typeof(useNums) != 'undefined' ? useNums : true;
function rand(from, to) {
from = typeof(from) != 'undefined' ? from : 0; // параметры
to = typeof(to) != 'undefined' ? to : from + 1; // по умолчанию
return Math.round(from + Math.random()*(to - from));
};
function getRandChar(a) {
return a.charAt(rand(0,a.length-1));
}
var form = document.getElementById(id);
// Наиболее подходящие согласные для использования их в качестве заглавных
var cCommon = "bcdfghklmnprstvz";
var cAll = cCommon + "jqwx"; // Все согласные
var vAll = "aeiouy"; // Все гласные
var lAll = cAll + vAll; // Все буквы
form.innerHTML = "";
for(var j = 0; j < numPass; ++j) {
// Коэффициент определяющий вероятность появления числа между слогами
var numProb = 0, numProbStep = 0.25;
for(var i = 0; i < syllableNum; ++i) {
if(Math.round(Math.random())) {
form.innerHTML += getRandChar(cCommon).toUpperCase() +
getRandChar(vAll) +
getRandChar(lAll);
} else {
form.innerHTML += getRandChar(vAll).toUpperCase() +
getRandChar(cCommon);
}
if(useNums && Math.round(Math.random() + numProb)) {
form.innerHTML += rand(0,9);
numProb += numProbStep;
}
}
var rezz = form.innerHTML;
document.getElementById('jsPassGenForm2').value = rezz;
}
return true;
// document.getElementById(id).value = form.innerHTML;
}
function runPassGen() {
jsPassGen('jsPassGenForm', 3, 1, jsPassGenUseNumsCB.checked);
}
runPassGen();
</script>
</div>
Спасибо.
|