流星:大多数“流星”的方式来清除表格领域

时间:2014-12-11 09:42:16

标签: meteor

我正在使用Meteor.js处理示例CRUD应用程序,并且不确定如何最好地清空表单的字段。我在两个地方需要它:单击“提交”按钮时,以及单击“取消”按钮时。

我通过创建一个名为clearFormFields()的实用程序函数来实现它,该函数只使用jQuery来清空它们的内容,但它并没有感觉到" Meteoric"正如它应该;我认为应该更好地确定范围,因此它没有全球可见性。我做错了什么?

function clearFormFields() {
        $("#description").val("");
        $("#priority").val("");    
}

Template.todoNew.events({
    'click #cancel': function(event) {
        event.preventDefault();
        Session.set('editing', false);
        clearFormFields();
    },

    'submit form': function(event) {
        event.preventDefault();
        var theDocument = {
            description: event.target.description.value,
            priority: event.target.priority.value               
        };
        if (Session.get("editing")) {
            Meteor.call("updateTodo", theDocument, Session.get('theDocumentId'))
        }
        else {
            Meteor.call("insertTodo", theDocument);            
        }        
        Session.set('editing', false);        
        clearFormFields();            
        /* Could do this twice but hate the code duplication.
        description: event.target.description.value = "";
        priority: event.target.priority.value = "";
        */
    }
});

2 个答案:

答案 0 :(得分:14)

您可以使用DOM表单节点的本机重置方法吗?

"submit form":function(event,template){
  event.preventDefault();
  // ...
  template.find("form").reset();
}

http://www.w3schools.com/jsref/met_form_reset.asp

答案 1 :(得分:4)

可以通过event.target.reset();

访问和重置发起事件的DOM对象。
"submit form":function(event){
   event.preventDefault();
   //...
   event.target.reset();
}

http://docs.meteor.com/#/full/eventmaps