我的流星应用程序有一个奇怪的问题 - 我在.js文件中有两个方法,假设要将数据插入数据库,这里它们是:
// add new hobby
Template.new_hobby.events({
'submit form': function(event){
event.preventDefault();
var id = $('[name=id]').val();
var title = $('[name=title]').val();
var body = $('[name=body]').val();
var image = $('[name=imagepath]').val();
console.log("client has id: "+id);
Meteor.call('new_hobby', id, title, body, image, function (error) {
if (error)
console.log(error.reason);
else {
$('[name=id]').val('');
$('[name=title]').val('');
$('[name=body]').val('');
$('[name=imagepath]').val('');
}
});
}
});
// add new fact
Template.new_fact.events({
'submit form': function(event){
event.preventDefault();
var id = $('[name=id]').val();
var title = $('[name=title]').val();
var body = $('[name=body]').val();
var image = $('[name=imagepath]').val();
console.log("client has id: "+id);
Meteor.call('new_fact', id, title, body, image, function (error) {
if (error)
console.log(error.reason);
else {
$('[name=id]').val('');
$('[name=title]').val('');
$('[name=body]').val('');
$('[name=imagepath]').val('');
}
});
}
});
问题在于 - Template.new_hobby.events中的函数不会读取输入字段的值,无论Template.new_fact.events中的函数是否相同。他们有完全相同的html模板:
<template name="new_hobby">
<form>
<p class="lead">New Hobby!</p>
<p>Id: <input type="text" name="id" required></p>
<p>Title: <input type="text" name="title" required></p>
<p>Body: <input type="text" name="body" required></p>
<p>Image path: <input type="text" name="imagepath" required></p>
<p><input type="submit" value="Submit Hobby"></p>
</form>
</template>
<template name="new_fact">
<form>
<p class="lead">New Fact!</p>
<p>Id: <input type="text" name="id" required></p>
<p>Title: <input type="text" name="title" required></p>
<p>Body: <input type="text" name="body" required></p>
<p>Image path: <input type="text" name="imagepath" required></p>
<p><input type="submit" value="Submit Fact"></p>
</form>
</template>
但我无法弄清问题是什么。在我制作Meteor方法将数据插入数据库后出现了这个问题。但由于其中一个功能确实有效,我认为其他地方存在问题。我将不胜感激任何帮助!!在此先感谢大家和圣诞快乐!
PS:我在这里还有另一个未回答的问题:Dynamic Meteor Templates所以,如果你觉得你不能帮我解决这个问题,请看看这个问题!
答案 0 :(得分:1)
您可以使用以下值获取值:event.target.title.value event.target.body.value等。不需要使用jQuery。