Страница 1 из 11
Модератор форума: JonMagon 
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » JavaScript » Минимальная длиа короткой описи материала
Минимальная длиа короткой описи материала
MSerega
Сообщений: 120
Репутация: 4

Сообщение # 1 | 16:18:08
Как можно сделать такое ограничение для пользователя? Что бы если не ввели достаточное количество символов в короткой описи материала то сделать
кнопку "Добавить" не активной. Потому что говорю своим журналистам пишите нормальную опись новости, а они мне 3 слова и все... а так хочу
что бы хотя б 120 символов.

Ну и сообщение можно где то вывести что введите минимальный лимит сообщения.

Если не можешь прожить жизнь нормально, проживи ее афигенно
Сообщение отредактировал MSerega - Вторник, 05 Май 2015, 16:18:56
$Tiny$
Сообщений: 193
Репутация: 61

Сообщение # 2 | 22:33:16
Перед </body>
Код
<?if($PAGE_ID$ == 'add' or $PAGE_ID$ == 'edit')?><script type="text/javascript">
$(window).load(function() {
   $('.manTdBut').html('<div id="CountBrief">Этой длины недостаточно</div>' + $('.manTdBut').html());
   $('#ldF18').attr('disabled', 'disabled');
   $('#brief').keyup(function () {
       if (document.getElementById('brief').value.length < 120) {
         $('#ldF18').attr('disabled', 'disabled');
         $('#CountBrief').html('Этой длины недостаточно');
       } else {
         $('#ldF18').removeAttr('disabled');
         $('#CountBrief').html('Сойдет');
       }
   });   
   $('.manTdBrief').find('iframe').contents().find('body').keyup(function () {
       if ($('.manTdBrief').find('iframe').contents().find('body').text().length < 120) {
         $('#ldF18').attr('disabled', 'disabled');
         $('#CountBrief').html('Этой длины недостаточно');
       } else {
         $('#ldF18').removeAttr('disabled');
         $('#CountBrief').html('Сойдет');
       }
   });
});
</script><?endif?>
MSerega
Сообщений: 120
Репутация: 4

Сообщение # 3 | 08:16:27
$Tiny$, Скрипт рабочий спасибо!!! Но заметил одну штуку что там наверное надо #ldF18 заменить на .manFlSbm. И тогда все работает! Спасибо огромное

Если не можешь прожить жизнь нормально, проживи ее афигенно
Сообщение отредактировал MSerega - Среда, 06 Май 2015, 08:22:36
$Tiny$
Сообщений: 193
Репутация: 61

Сообщение # 4 | 13:19:40
MSerega, да. Код писал на модуле "Каталог файлов", а там id у кнопки - "ldF18", а при добавлении забыл поменять. Конечно же, лучше через класс, потому как он одинаков и для каталога, и для новостей.
MSerega
Сообщений: 120
Репутация: 4

Сообщение # 5 | 08:12:43
А можно сюда впихнуть и что бы для полной описи материала тоже самое делало?

Если не можешь прожить жизнь нормально, проживи ее афигенно
$Tiny$
Сообщений: 193
Репутация: 61

Сообщение # 6 | 18:32:25
Попытаюсь сделать универсальным тогда.
Цитата MSerega ()
для полной описи материала тоже самое делало

Код
<script type="text/javascript">
   $(window).load(function() {
     var ArrayBooleanFunc = [
  [  
    function() {return (document.getElementById('brief').value.length >= 120);},
    function() {return ($('.manTdBrief').find('iframe').contents().find('body').text().length >= 120);}
  ], [  
    function() {return (document.getElementById('message').value.length >= 120);},
    function() {return ($('.manTdText').find('iframe').contents().find('body').text().length >= 120);}
  ]
     ];
     $('.manTdBut').html('<div id="CountBrief">Этой длины недостаточно</div>' + $('.manTdBut').html());
     $('.manFlSbm').attr('disabled', 'disabled');
     function СheckBooleanFunc () {
  var rbool = true;
  for (var i = 0; i < ArrayBooleanFunc.length; i++) {
    var wbool = false;
    for (var j = 0; j < ArrayBooleanFunc[i].length; j++) {
       wbool = wbool || (ArrayBooleanFunc[i][j]());
    }  
    rbool = rbool && wbool;
  }
         if (!rbool) {
           $('.manFlSbm').attr('disabled', 'disabled');
           $('#CountBrief').html('Этой длины недостаточно');
         } else {
           $('.manFlSbm').removeAttr('disabled');
           $('#CountBrief').html('Сойдет');
         }
     };
     $('#brief, #message').keyup(function () {
  СheckBooleanFunc();
     });     
     $('.manTdBrief, .manTdText').find('iframe').contents().find('body').keyup(function () {
         СheckBooleanFunc();
     });
   });
</script>

А если скрипт отредактировать так:
Код
<script type="text/javascript">
   $(window).load(function() {
     var ArrayBooleanFunc = [
  [  
    function() {return (document.getElementById('brief').value.length >= 120);},
    function() {return ($('.manTdBrief').find('iframe').contents().find('body').text().length >= 120);}
  ], [  
    function() {return (document.getElementById('message').value.length >= 120);},
    function() {return ($('.manTdText').find('iframe').contents().find('body').text().length >= 120);}
  ], [  
    function() {return (document.getElementById('ldF14').value.length >= 12);}
  ]
     ];
     $('.manTdBut').html('<div id="CountBrief">Этой длины недостаточно</div>' + $('.manTdBut').html());
     $('.manFlSbm').attr('disabled', 'disabled');
     function СheckBooleanFunc () {
  var rbool = true;
  for (var i = 0; i < ArrayBooleanFunc.length; i++) {
    var wbool = false;
    for (var j = 0; j < ArrayBooleanFunc[i].length; j++) {
       wbool = wbool || (ArrayBooleanFunc[i][j]());
    }  
    rbool = rbool && wbool;
  }
         if (!rbool) {
           $('.manFlSbm').attr('disabled', 'disabled');
           $('#CountBrief').html('Этой длины недостаточно');
         } else {
           $('.manFlSbm').removeAttr('disabled');
           $('#CountBrief').html('Сойдет');
         }
     };
     $('#brief, #message, #ldF14').keyup(function () {
  СheckBooleanFunc();
     });     
     $('.manTdBrief, .manTdText').find('iframe').contents().find('body').keyup(function () {
         СheckBooleanFunc();
     });
   });
</script>
В Каталоге Файлов будет проверять, чтобы еще и поле "Web-site:" содержало не менее 12 символов.
Сообщество uCoz » Вебмастеру » JavaScript, Flash и прочие технологии » JavaScript » Минимальная длиа короткой описи материала
Страница 1 из 11
Поиск: