Показать сообщение отдельно
  #6 (permalink)  
Старый 14.12.2011, 22:47
Аспирант
Отправить личное сообщение для Arigato Посмотреть профиль Найти все сообщения от Arigato
 
Регистрация: 11.12.2011
Сообщений: 42

Но отправка все равно будет заблокирована.
А вот всякие события, типа cut, paste, наступают до вырезания или вставки, т.е. их использовать не получится.
Вообще, странно, что change не хочет оперативно срабатывать, а только на потерю фокуса.

Короче, тогда такой вариант решения:

<html>
<head>
  <style type="text/css">
    .border-black {border: 1px solid black}
    .border-red {border: 1px solid red}
  </style>
  <script type="text/javascript"><!--
    function checkLength (id, maxLen)
    {
      var object = document.getElementById (id);
      object.className = ( object.value.length > maxLen ) ? "border-red" : "border-black";
    }
    function setMaxLength (id, maxLen)
    {
      var object = document.getElementById (id);
      with ( object )
      {
        maxLength = maxLen;
        className = "border-black";
      }
      eval ("setInterval (function() {checkLength ('" + id + "', " + maxLen + ")}, 10)");
    }
    function validate (form)
    {
      if ( form.text.value.length > maxLen )
      {
        alert ("Длинна текста больше допустимой");
        form.text.focus();
        return false;
      }
      return true;
    }
  //--></script>
</head>
<body onload="setMaxLength ('text', 10)">
  <form onsubmit="return validate (this)">
    <textarea cols="60" rows="12" id="text" name="text"></textarea><br>
    <input type="submit" value=" Отправить ">
  </form>
</body>
</html>

Последний раз редактировалось Arigato, 14.12.2011 в 22:53.
Ответить с цитированием