我的 Template.home.helpers 中的$(".submitNumberForm").show(900);
代码无法启动。但是,当代码在浏览器控制台中运行时,它可以完美运行。
$(".submitNumberForm").show(900);
无法在 Template.home.helpers 中运行的事实意味着由类名{{1}表示的 HTML表单 }永远不会显示,并保持隐藏状态。
如果有人请解释我的代码出了什么问题,我将不胜感激。
在我的帮助代码下找到:.submitNumberForm
,请特别注意../client/main.js
。
$(".submitNumberForm").show(900);
刷新Template.home.helpers({
'displaySubmitForm': function () {
var verificationCode = Meteor.user().profile.telephoneNumberVarificationCode;
var verificationCodeTest = Meteor.user().profile.telephoneNumberVarified;
if( typeof verificationCode === 'undefined' && typeof verificationCodeTest === 'undefined'){
console.log("displaySubmitForm verificationCode: " +verificationCode);
console.log("displaySubmitForm verificationCodeTest: " +verificationCodeTest);
alert("displaySubmitForm: TRUE");
$(".submitNumberForm").show(900);
return true;
}
else {
alert("displaySubmitForm: FALSE");
$(".submitNumberForm").hide(900);
return false;
}
}
});
页后,浏览器控制台将打印出:
home
,警报功能将显示一个弹出窗口,显示:displaySubmitForm verificationCode: undefined
displaySubmitForm verificationCodeTest: undefined
,但是displaySubmitForm: TRUE
不会启动!
在我的$(".submitNumberForm").show(900);
代码<template name="home">
下找到。请注意,模板顶部/开头的../client/main.html
显示单词{{displaySubmitForm}}
,但是 HTML表单的其余部分true
不会显示在所有。这再次表明submitNumberForm
代码未启动
$(".submitNumberForm").show(900);
在我的CSS文件下面找到:<template name="home">
{{displaySubmitForm}}
{{#if displaySubmitForm}}
<div class="form-group submitNumberForm">
<div class="col-sm-10">
<input type="number" class="form-control" id="telephoneNumber" placeholder="Enter Number" name="telephoneNumber">
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="button" id="submitNumber" class="btn btn-primary btn-block">Submit</button>
</div>
</div>
</div>
{{else}}
{{/if}}
</template>
.../client/main.css
请澄清一下, html表单 .submitNumberForm{
display: none;
}
默认是隐藏的,并且仅根据submitNumberForm
中指定的条件显示$(".submitNumberForm").show(900);
< / p>
同样,当我从帮助程序中复制代码,粘贴并在控制台中运行时,会出现 HTML表单 Template.home.helpers
。谁能向我解释为什么submitNumberForm
不能在助手中启动呢?
答案 0 :(得分:1)
使用{{#if displaySubmitForm}}
表示:{{#if}}
返回true时,在{{/if}}
和displaySubmitForm helper
标签之间生成html代码。
执行帮助程序时,if
中的html元素不存在。
因此,您的选择器:代码中的$(".submitNumberForm")
不会选择任何内容,因为submitNumberForm元素尚不存在。
在那之后,它可以在控制台上运行,因为帮助程序已经执行,并且现在生成了html。