gpt4 book ai didi

javascript - 为什么Meteorjs中的这个提交功能不起作用?

转载 作者:行者123 更新时间:2023-12-02 16:20:55 25 4
gpt4 key购买 nike

我有一个包含 7 个问题的表格。我使用 display:none 单独询问他们。但问题是提交功能不起作用。当我单击它时,它只是重定向回第一个问题,并且 url 变为 - http://localhost:3000/?problem=&why1=&why2=&why3=&why4=&why5=&solution=&submit-all=Answer 。我真的需要帮助。下面是要在问题集合中提交的 HTML 模板和 JavaScript 提交函数的代码。

<template name="submitProblem">
<div class="container">
<div class="main-page">
<form class="text-center">
<div id="submit-problem">
<input autofocus="autofocus" type="text" name="problem" id="problem" placeholder="What's the problem ?"/>
<input type="button" id="route" value="Find Its Route" class="route btn btn-sample">
</div>

...
submit-why1 - submit-why4
...

<div id="submit-why5" class="hidden">
<input autofocus="autofocus" type="text" id="why5" class="" name="why5" placeholder="This problem exists, because..."/>
<input type="button" value="Answer" class="btn-success btn answer5">
<button class="btn back5 back-btn"><i class="fa fa-arrow-left fa-3x"></i></button>
</div>

<div id="submit-solution" class="hidden">
<input autofocus="autofocus" type="text" name="solution" id="solution" placeholder="What could be the best solution ?"/>

<input type="submit" id="submit-all" name="submit-all" value="Answer" class="btn btn-primary submit-all">

<button class="btn back6 back-btn"><i class="fa fa-arrow-left fa-3x"></i></button>
</div>
</form>
</div>
</div>
</template>

Template.submitProblem.events({
'submit .submit-all':function() {
event.preventDefault();
var problem = $(event.target).find('[name=problem]').val();
var why1 = $(event.target).find('[name=why1]').val();
var why2 = $(event.target).find('[name=why2]').val();
var why3 = $(event.target).find('[name=why3]').val();
var why4 = $(event.target).find('[name=why4]').val();
var why5 = $(event.target).find('[name=why5]').val();
var solution = $(event.target).find('[name=solution]').val();

Problems.insert({
problem: problem,
why1: why1,
why2: why2,
why3: why3,
why4: why4,
why5: why5,
solution: solution,
submitdate: new Date()
});

console.log(problem + why1 + why2 + why3 + why4 + why5 + solution);

Router.go('submitted');
}
});

最佳答案

您需要将事件作为第一个参数传递给您的处理程序:

submit: function(event) {
event.preventDefault();
...

否则它不会被定义,默认操作(POST)不会被阻止,并且您的页面将重新加载。

关于javascript - 为什么Meteorjs中的这个提交功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29132989/

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