2016-03-25 2 views
0

Используя его с jquery 1.6.4, он не работает, с более новыми версиями он отлично работает. еще потому я использую старую версию JQuery я получаю ошибкуКак я могу заставить эту функцию работать на старом jquery?

TypeError: $(…).on is not a function

http://jsfiddle.net/w0jekdL6/18/

$(".amount").on("keyup", function(){ 
    var valid = /^\d{0,5}(\.\d{0,2})?$/.test(this.value), 
     val = this.value; 
    var pos = this.selectionStart - 1; 

    if(!valid){ 
     if(typeof this.lastValid != "undefined") { 
      this.value = this.lastValid 
      this.setSelectionRange(pos, pos); 
     } else { 
      this.value = ""; 
     } 
    } else { 
     this.lastValid = val; 
    } 
}); 
+1

Реальный ответ использовать более новую версию JQuery, нет никаких причин, чтобы использовать версию, которая несколько лет старый. – adeneo

+0

Я попробовал это, но, к сожалению, это перерывает другие вещи –

+0

Тогда вам, вероятно, следует заменить другой материал на более новые вещи. – adeneo

ответ

1

Использование .keyup() вместо .on() : (согласно the docs это будет РБП работа для новых версий JQuery)

$(".amount").keyup(function(){ 
    var valid = /^\d{0,5}(\.\d{0,2})?$/.test(this.value), 
     val = this.value; 
    var pos = this.selectionStart - 1; 

    if(!valid){ 
     if(typeof this.lastValid != "undefined") { 
      this.value = this.lastValid 
      this.setSelectionRange(pos, pos); 
     } else { 
      this.value = ""; 
     } 
    } else { 
     this.lastValid = val; 
    } 
}); 

JQuery-х .on() была добавлена ​​только в версии 1.7

Смежные вопросы