2015-11-09 2 views
0

Использование Meteor JS, я хотел бы изменить значение span внутри Template.event при вводе keyup.Метеор JS Шаблон событие заменить текст с помощью jquery

Что-то вроде этого:

Template.myTemplate.events({ 
    "keyup .convertInput": function(event, template){ 
     event.preventDefault(); 
     var t = event.target; 
     $(t).parent().find('.resultConvertedAmount').html('1234'); 
    } 
}); 

Html:

<div class="form-group"> 
    <input type="text" class="form-control convertInput" /> 
    <span class="resultConvertedAmount"></span> 
</div> 

"resultConvertedAmount" является диапазон назначения, для которых я хотел бы связать значение каждый раз, когда нажата клавиша на "convertInput".

Следующий код является способ JQuery, чтобы сделать это (это работает отлично):

$('.convertInput').parent().find('.resultConvertedAmount').html('1234'); 

Любая помощь? спасибо

+1

Replace '' с Т * event.currentTarget 'в пятой строке – Sindis

ответ

2

У вас уже есть ссылка на экземпляр вашего шаблона, поэтому вам не нужно проходить через dom.

Template.myTemplate.events({ 
    "keyup .convertInput": function(event, template){ 
     event.preventDefault(); 
     template.$('.resultConvertedAmount').html('1234'); 
    } 
}); 

template.$() обозначение особенность spacebars/блеска и позволяет использовать JQuery селекторы, которые связаны в контексте шаблона.

+0

Это работает отлично и быстрее, я не знал о шаблоне. $ Спасибо! – Simonux

+0

Нет проблем! :) –

0

Ваш код уже привязывает значение 1234 к пролету .resultConvertedAmount каждый раз при нажатии клавиши на .convertInput. Если вы хотите, чтобы заменить текст в пролете с тем, что вы входите в вводе текста, вы можете сделать одно из следующих действий -

$(t).parent().find('.resultConvertedAmount').html(t.value); 

ИЛИ

template.find(".resultConvertedAmount").innerHTML = t.value; 
Смежные вопросы