Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2009, 15:35
verg
 
Сообщений: n/a

Чтоб параметр 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>
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2009, 15:54
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

как бы вам сказать
вызов функции выполняется до того, как вы щелкните радиокнопку
вы хотите, что бы щелчок по радиокнопке менял кодж в прошлом?

а если вы хотите, чтобы был повторный вызов этой функции, то повесьте его на обработчик события onclick соответсвующих радиокнопок
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2009, 16:18
verg
 
Сообщений: n/a

Подробный код.
Вот полный код:
Код:
 <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... ЗАРАНЕЕЕ, БОЛЬШОЕ, БОЛЬШОЕ СПАСИБО!!!!
Ответить с цитированием
  #4 (permalink)  
Старый 13.06.2009, 16:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 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, и тогда то что вы хотите будет доступно
кстати, этот код является морально устаревшим и довольно громоздким для своей функциональности, поэтому лучше его полностью переписать, а не только этот момент
переписывать за вас никто не будет.
это вам в раздел работа
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск