Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.02.2013, 23:04
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<!DOCTYPE HTML>
<html>
  <head>
<style>
input[name='chb-agree']:disabled{
  outline: 1px solid red;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
  $("input[name='chb-agree']").attr('disabled',true).removeAttr('id')
  var tarea=$("#txt-sign")
  setTimeout( function(){tarea.scrollTop(3000);},20)
  var tareaScroll;
  var timerscroll;
  setTimeout( function(){
       tareaScroll = tarea.scrollTop();
       //alert(tareaScroll);
       tarea.scrollTop(0);


    $("#txt-sign").bind('scroll',function () {
      clearTimeout(timerscroll);
      timerscroll=setTimeout( function(){  //  очистка чрезмерных срабатываний;
         if(tarea.scrollTop()>=tareaScroll-12) {

          $("input[name='chb-agree']").removeAttr('disabled').attr('id','chb-agree');
          $("#txt-sign").ubind('scroll');

          }

      },20)
    });

  },20)

});
</script>
 </head>
  <body>
<form action="">
    <div class="verification-form-wrap sign">
   
        <textarea id="txt-sign" name="txt-sign" cols="70" rows="10">
        
        TEMPORARY REGISTRATION AGREEMENT
        
        1. I have read andagree to Siberian Health Compensation Plan and Siberian Health products andservices as set forth in official
        Siberian Health literature 
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
        .....................................................................
                                        
        </textarea>
    <div class="chb-wrapper">
        <input type="checkbox" id="chb-agree" name="chb-agree" />
        <label for="chb-agree" class="lb-agree">I accept all terms and conditions of the contact (please read contract)</label>
    </div>
</form>


  </body>
</html>

Последний раз редактировалось Deff, 05.02.2013 в 23:24.
Ответить с цитированием
  #12 (permalink)  
Старый 05.02.2013, 23:24
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

Deff, можно ведь проще:
http://jsfiddle.net/vsEuc/
Ответить с цитированием
  #13 (permalink)  
Старый 06.02.2013, 02:36
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

a_l,
Cимпатично( чот не пришёл такой путь
Да , нужно отнять десяток пиксел от высоты
if($(this)[0].scrollTop + $(this).height() >= $(this)[0].scrollHeight-12) {

у некоторых браузов скролл чуть менее высоты

Последний раз редактировалось Deff, 06.02.2013 в 02:40.
Ответить с цитированием
  #14 (permalink)  
Старый 06.02.2013, 02:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Возможно Ваш элегантней... сплю уже
<!DOCTYPE html>
  <html>
    <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <title> - jsFiddle demo</title>
       <style>
          input[name='galochka']:disabled{
          outline: 1px solid red;
       }
     </style>
      <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.js"></script>
      <link rel="stylesheet" type="text/css" href="/css/normalize.css">
      <link rel="stylesheet" type="text/css" href="/css/result-light.css">
      <style type="text/css">
    textarea{
    width:300px;
    height:100px;
    display:block;
}
  </style>
      <script type="text/javascript">//&lt;![CDATA[ 
$(window).load(function(){
$("input[name=galochka]").attr("disabled", true);
$("textarea").scroll(function() {
    if($(this)[0].scrollTop + $(this).height() >= $(this)[0].scrollHeight-10) {
      $('input[name=galochka]').removeAttr("disabled");  
    }    
});

});//]]&gt;  

</script>
    </head>
    <body style="">
      <textarea>Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
Очень  длинное соглашение!
</textarea>
      <input type="checkbox" name="galochka">
    </body>
  </html>

Вот тут без отъёма 10 пиксел не сработало
Но всё одно - данный Ваш код элегантней!

Последний раз редактировалось Deff, 06.02.2013 в 13:15.
Ответить с цитированием
  #15 (permalink)  
Старый 06.02.2013, 02:54
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

a_l,
Нашел синхронную оплошку в обоих кодах:

При растягивании textarea до лишения скролла - естественно событие не срабатывает и checkbox никогда не раздизаблится
Нун таймаутом изредка проверять высоту textarea и высоту контента

Последний раз редактировалось Deff, 06.02.2013 в 02:56.
Ответить с цитированием
  #16 (permalink)  
Старый 06.02.2013, 11:29
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

Цитата:
При растягивании textarea до лишения скролла - естественно событие не срабатывает и checkbox никогда не раздизаблится
Есть такое, но можно же запретить ресайз в css:
textarea{ 
  resize: none;
}
Ответить с цитированием
  #17 (permalink)  
Старый 06.02.2013, 13:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от a_l
Есть такое, но можно же запретить ресайз в css:
Неудобно, я в частности при длином контексте часто растягиваю, к примеру тут форму ответа.
Ответить с цитированием
  #18 (permalink)  
Старый 06.02.2013, 19:19
Интересующийся
Отправить личное сообщение для georg Посмотреть профиль Найти все сообщения от georg
 
Регистрация: 08.05.2012
Сообщений: 11

Да, ресайз должен быть запрещен.
Я вчера стал писать по-своему как-то, но a_l действительно предложил элегантное решение, посему использовал его.

Спасибо a_l и deff за помощь. Огромное.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
checkbox = checkbox Слейп jQuery 2 30.01.2013 15:24
обновить textarea wp2 Events/DOM/Window 6 03.02.2012 23:44
bbcodes вставляются в чужой textarea foreach Events/DOM/Window 2 30.01.2012 21:15
jqgrid tree and checkbox gaz2003 jQuery 0 17.12.2011 15:59
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51