13.06.2009, 15:35
|
|
Чтоб параметр 70 менялось на 140
:help: Привет, всем! Я плохо знаю javascript, помогите мне. Мне нужно чтоб при выборе ождной их 2-х радио кнопок, а именно первая "Кирилица", вторая "латиница", менялась цифра 70 на 140 вот тут -
Код:
|
..... displaylimit("document.limitForm.limit", "", 70);
</script> |
Сам код:
Код:
|
<textarea name="limit" cols="5" class="sms" align="top"></textarea>
<br>
<script type="text/javascript">
var ns6=document.getElementById&&!document.all
function restrictinput(maxlength, e, placeholder)
{
if (window.event && event.srcElement.value.length >= maxlength)
return false;
else if (e.target && e.target == eval(placeholder) && e.target.value.length >= maxlength)
{
var pressedkey = /[a-zA-Z0-9\.\,\/]/;
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation();
}
}
function countlimit(maxlength, e, placeholder)
{
var theform = eval(placeholder);
var lengthleft = maxlength-theform.value.length;
var placeholderobj = document.all ? document.all[placeholder] : document.getElementById(placeholder);
if (window.event || e.target&&e.target == eval(placeholder))
{
if (lengthleft < 0)
theform.value = theform.value.substring(0, maxlength);
placeholderobj.innerHTML = lengthleft
}
}
function displaylimit(thename, theid, thelimit)
{
var theform = theid != "" ? document.getElementById(theid) : thename;
var limit_text = 'Осталось <span id="' + theform.toString() + '">' + thelimit + '</span> символов';
if (document.all || ns6)
document.write(limit_text)
if (document.all)
{
eval(theform).onkeypress = function(){ return restrictinput(thelimit, event, theform)}
eval(theform).onkeyup = function(){ countlimit(thelimit, event, theform)}
}
else if (ns6)
{
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit, event, theform) }, true);
document.body.addEventListener('keyup', function(event) { countlimit(thelimit, event, theform) }, true);
}
}
displaylimit("document.limitForm.limit", "", 70);
</script> |
|
|
13.06.2009, 15:54
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
как бы вам сказать
вызов функции выполняется до того, как вы щелкните радиокнопку
вы хотите, что бы щелчок по радиокнопке менял кодж в прошлом?
а если вы хотите, чтобы был повторный вызов этой функции, то повесьте его на обработчик события onclick соответсвующих радиокнопок
|
|
13.06.2009, 16:18
|
|
Подробный код.
Вот полный код:
Код:
|
<form style="border:0px;" action="index.php" method="post" name="limitForm">
<p><input name="r1" type="radio" value="70">
Кирилица
</p>
<p><input name="r2" type="radio" value="140">
Латиница
</p>
<textarea name="limit" cols="20" rows="5" class="sms" align="top"></textarea>
<br>
<script type="text/javascript">
var ns6=document.getElementById&&!document.all
function restrictinput(maxlength, e, placeholder)
{
if (window.event && event.srcElement.value.length >= maxlength)
return false;
else if (e.target && e.target == eval(placeholder) && e.target.value.length >= maxlength)
{
var pressedkey = /[a-zA-Z0-9\.\,\/]/;
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation();
}
}
function countlimit(maxlength, e, placeholder)
{
var theform = eval(placeholder);
var lengthleft = maxlength-theform.value.length;
var placeholderobj = document.all ? document.all[placeholder] : document.getElementById(placeholder);
if (window.event || e.target&&e.target == eval(placeholder))
{
if (lengthleft < 0)
theform.value = theform.value.substring(0, maxlength);
placeholderobj.innerHTML = lengthleft
}
}
function displaylimit(thename, theid, thelimit)
{
var theform = theid != "" ? document.getElementById(theid) : thename;
var limit_text = 'Осталось <span id="' + theform.toString() + '">' + thelimit + '</span> символов';
if (document.all || ns6)
document.write(limit_text)
if (document.all)
{
eval(theform).onkeypress = function(){ return restrictinput(thelimit, event, theform)}
eval(theform).onkeyup = function(){ countlimit(thelimit, event, theform)}
}
else if (ns6)
{
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit, event, theform) }, true);
document.body.addEventListener('keyup', function(event) { countlimit(thelimit, event, theform) }, true);
}
}
displaylimit("document.limitForm.limit", "", 70);
</script>
</p>
</form> |
Мне нужно чтоб по клику по радио-кнопке r2, в коде на 4 строке снизу менялось число 70 на 140, и обратно если кликнули по r1. Помогите совсем не шарю в javascript, знаю только PHP. Сможите кто-нибудь написать это на javascript... ЗАРАНЕЕЕ, БОЛЬШОЕ, БОЛЬШОЕ СПАСИБО!!!!
|
|
13.06.2009, 16:33
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Вспомнилось:
Сообщение от 66142 (сохранена 2009-06-09 в 22:35)
|
Программистам на perl (да и другим).
Выдержка из примера использования библиотеки Date::Simple
if ($today > $tomorrow) {
die "warp in space-time continuum";
}
|
Повторю еще раз:
вы просите невозможного, а именно повлиять событие пользователя на уже свершивишийся факт
а факт, заключается в том, что функция displaylimit при своем вызове генерирует эту самую надпись, и при таком варианте кода, этот факт исправить нельзя
более того повторный вызов этой функции перезапишет документ нах
Это примерно, как если бы я вас попросил код на PHP, в котором сначала делается вывод данных в браузер, потом весь буфер сбрасывается дальше, а потом вдруг мы осознаем, что нам не надо было отправлять этот текст
вы что-то сможете сделать на PHP?
если да, то я буду сильно удивлен
вот и тут нельзя
надо этот код переписать, чтобы он не использовал document.write, и тогда то что вы хотите будет доступно
кстати, этот код является морально устаревшим и довольно громоздким для своей функциональности, поэтому лучше его полностью переписать, а не только этот момент
переписывать за вас никто не будет.
это вам в раздел работа
|
|
|
|