gpt4 book ai didi

javascript - 使用 IronRouter/MeteorJS 在 Bootstrap 模式中提交表单

转载 作者:行者123 更新时间:2023-11-29 19:26:11 25 4
gpt4 key购买 nike

我正在尝试向我正在创建的类似于食谱的网络应用程序提交新的开胃菜。布局有一个恒定的标题/导航,允许用户添加一个新的开胃菜,这会触发一个模式和一个包含开胃菜名称、描述和照片的表单。我希望模式在提交后关闭,并保留在触发模式的当前页面上。目前,我的提交表单无法正常工作,我不确定问题出在哪里...

当前部署版本的链接是:http://reed-cookbook.meteor.com/

我的路由器:

// lib/router.js

Router.configure({
layoutTemplate: 'layout'
});

Router.map(function() {
this.route('allRecipes', {
path: '/'
});

this.route('appetizers', {
path: '/appetizers'
});

this.route('appetizerPage', {
path: '/appetizers/:_id',
data: function() { return Appetizers.findOne(this.params._id); }
});

this.route('desserts', {
path: '/desserts'
});

this.route('mainCourses', {
path: '/maincourses'
});

this.route('submit', {
path: '/appetizerSubmit'
});
});

我的开胃菜 html 表单:

// client/views/forms/appetizerForm.html

<template name="appetizerForm">
<!-- This is the appetizer modal -->
<div class="modal fade" id="myAppModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">Add An Appetizer</h4>
</div>
<div class="modal-body">
<!-- This is the appetizer form -->
<form>
<div class="form-group">
<label for="inputNewLabel">Name</label>
<input type="text" class="form-control" id="addNewAppetizer" name="appName" placeholder="What is the name of this appetizer?">
</div>
<div class="form-group">
<label for="inputNewLabel">Description</label>
<input type="text" class="form-control" id="addNewAppDesc" name="appDesc" placeholder="Share details about your appetizer.">
</div>
<div class="form-group">
<label for="inputNewLabel">Add Photo</label>
<input type="file" id="addNewAppPic" name="appPic">
<p class="help-block">Upload a photo of your appetizer.</p>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary" value="submitApp">Submit Appetizer</button>
</div>
</div>

我的用于此特定 html 功能的 appetizerForm.js:

// client/views/forms/appetizerForm.js

Template.appetizerForm.events({
'submitApp': function(e) {
e.preventDefault();

var appetizer = {
name: $(e.target).find('[name=appName]').val(),
description: $(e.target).find('[name=appDesc]'),
photo: $(e.target).find('[name=appPic]').val()
}

appetizer._id = Appetizers.insert(appetizer);
Router.go('/', appetizer);
}
});

最佳答案

您的事件映射语法错误,它必须是 eventType cssSelector

Template.appetizerForm.events({
"submit form": function(event, template) {
event.preventDefault();
[...]
template.$(".modal").modal("hide");
}
});

如果您希望模态框在提交表单时关闭,请使用 jQuery 插件语法调用模态框的 hide 方法。

关于javascript - 使用 IronRouter/MeteorJS 在 Bootstrap 模式中提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30687255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com