2015-07-26 3 views
0

У меня есть этот шаблон:Метеор - Сохранение данных проблем

<Template name="nuevoEjercicio"> 
<div class="container-fluid"> 
    <div class="form-group"> 
    <input type="text" class="form-control input-lg" name="ejercicio" placeholder="Ejercicio?"/> 
    <input type="number" class="form-control" name="repeticiones" placeholder="Repeticiones?" /> 
    <input type="number" class="form-control" name="peso" placeholder="Peso?" /> 
    <button type="submit" class="btn btn-success" > 
     <span class="glyphicon glyphicon-plus"></span> 
    </button> 
    </div> 
</div> 
</Template> 

, что я использую, чтобы захватить и сохранить в базу данных. Тогда на мой .js файл Я пытаюсь получить данные и сохранить его:

Template.nuevoEjercicio.events({ 
    'click .btn btn-success': function (event) { 
     var ejercicio = event.target.ejercicio.value; 
     var repeticiones = event.target.repeticiones.value; 
     var peso = event.target.peso.value; 


     ListaRutina.insert({ 
     rutina:"1", 
     ejercicio:ejercicio, 
     repeticiones:repeticiones, 
     peso:peso, 
     }); 

     // Clear form 
     event.target.ejercicio.value = ""; 
     event.target.repeticiones.value = ""; 
     event.target.peso.value = ""; 

     // Prevent default form submit 
     return false; 
    } 
    }); 
} 

как я понимаю, когда я нажимаю на любой объект, который имеет стиль БТН-успеха БТН .... но не случай. По какой-то неясной причине - для меня - не работает. Можете ли вы проверить его и дать мне совет? Спасибо!

+0

Вы получаете сообщение об ошибке? Вы должны получить его из 'event.target.ejercicio.value'. – Kriegslustig

+0

Не то, чтобы я мог видеть. Вы знаете, что просто учитесь. На консоли javascript я вижу: Ошибка подключения WebSocket к «ws: // localhost: 3000/sockjs/782/enojsmbs/websocket»: ошибка во время установления связи WebSocket: неверная строка состояния. Но присутствует даже я не нажимаю на кнопку. – Manuel

+0

Кстати, может кто-то знает: почему на некоторых примерах, которые я вижу: Template.TemplateName.events ({ 'представить': функцию (событие, шаблон) { на некоторых других: Template.TemplateName.events ({ 'submit': function (event) { и некоторые другие: Template.TemplateName.events ({ 'submit': function() { – Manuel

ответ

0

Прежде всего, в вашем селекторе есть ошибка. Это 'click .btn.btn-success', а не 'click .btn btn-success'.

Также вы не можете сделать это event.target.ejercicio.value вещь. event.target - это элемент, который был нажат. Вы должны сделать что-то вроде этого:

'click .btn.btn-success': function (event, template) { 
    var ejercicio = template.$('[name=ejercicio]').val() 
    ... 
+0

ok ... Я не понимаю, почему, но сделал ваши sugested изменения, а также добавил: window.alert («sometext»), в мой JS-файл. Это похоже на то, что он не реагирует на нажатие кнопки. Это так расстраивает :( – Manuel

+0

Я считаю, что обработчик событий должен быть на клике .btn.btn-success' (между двумя классами нет места). Предполагая, что у вас есть только один объект класса .btn' в DOM, вы даже можете упростить 'click .btn'. Чтобы проверить селектор, просто откройте консоль js на странице и введите (например): '$ ('. Btn')' и посмотрите, что возвращается. Это экономит много времени отладки. –

+0

Ну, это глупая ошибка с моей стороны. Спасибо @MichelFloyd :) – Kriegslustig

0

OK Что после тратить часы и часы решение является: 1- на HTML файл дать ваш входной идентификатор:

<input type="number" class="form-control" **id="peso"** placeholder="Peso?" /> 
    <button type="submit" class="btn .btn-success" id="**guardar**" /> 

так Теперь вы хотите сохранить данные на входе при нажатии на кнопку: 2- вы связать кнопку с несильно через ид

Template.TEMPLATENAMEONHTMLFILE.events({ 
    'click **#guardar**': function (event, template) { 

     var ejercicio = template.$("**#peso**").val(); 

и получить V alue, используя идентификатор ввода.

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