Как переписать функцию?

Доброго всем времени суток!

на Jquery писать не умею..написал гавнокод. Который проверяет условия. если переменная "lines.length" равна условию, то тегу "input" с id "jshop_attr_id[16-18]" присваивается значение "checked". Все работает, но я написал гавно код, который можно переписать.. + если выполняется условие if, то код отображается мгновенно, а если else if, то код срабатывает не сразу,а только после обновления строки.
if (lines.length <= 1) {
            $('#jshop_attr_id15').prop('checked',true);
            $('#block_price').html(price+dop+rub);
        }
        if (lines.length == 2) {
            $('#jshop_attr_id16').prop('checked',true);
            $('#block_price').html(price+20+dop+rub);
        }
        if (lines.length == 3) {
            $('#jshop_attr_id17').prop('checked',true);
            $('#block_price').html(price+40+dop+rub);
        }
        if (lines.length == 4) {
            $('#jshop_attr_id18').prop('checked',true);
            $('#block_price').html(price+60+dop+rub);
        }
        if (lines.length >= 5) {
            $('#jshop_attr_id19').prop('checked',true);
            $('#block_price').html(price+80+dop+rub);
        }


полный код:
$(function(){
    var dop = 0;
    $('textarea').on('keypress',function(event){
          var text = $('textarea').val();
          var lines = text.split("\n");
          var currentLine = this.value.substr(0, this.selectionStart).split("\n").length;

          var sss = $('#block_attr_sel_1 input:checkbox').prop('checked',false);
          var rub = ' &#8381';
          var price = 120;

          if(event.keyCode == 13) {
            if (lines.length >= $(this).attr('rows'))
                return false;
          }
          else{
             if(lines[currentLine-1].length >= $(this).attr('cols')) {
                 if (lines.length <= $(this).attr('rows') - 1) {
                     $(this).val(text + '\n');
                 } else {
                      return false; 
                 }
             }
          }
        if (lines.length <= 1) {
            $('#jshop_attr_id15').prop('checked',true);
            $('#block_price').html(price+dop+rub);
        }
        if (lines.length == 2) {
            $('#jshop_attr_id16').prop('checked',true);
            $('#block_price').html(price+20+dop+rub);
        }
        if (lines.length == 3) {
            $('#jshop_attr_id17').prop('checked',true);
            $('#block_price').html(price+40+dop+rub);
        }
        if (lines.length == 4) {
            $('#jshop_attr_id18').prop('checked',true);
            $('#block_price').html(price+60+dop+rub);
        }
        if (lines.length >= 5) {
            $('#jshop_attr_id19').prop('checked',true);
            $('#block_price').html(price+80+dop+rub);
        }
    });
    $("#jshop_attr_id23").click(function() {
        dop = 50;
    });
});


спасибо.
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
Shutik
@Shutik
Погромист халявщик
совет - поменяйте attr('checked', 'checked') и removeAttr( "checked" ) на prop('checked',true|false), будет правильнее
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
aaadddminnn
@aaadddminnn
php it ubuntu debian
Тут вместо тебя не кто переписывать не будет парниша
Ответ написан
Комментировать
IonDen
@IonDen
JavaScript developer. IonDen.com
Когда количество условий зашкаливает, посмотрите в сторону switch...case, он гораздо лучше подходит для подобной логики.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы