javascript - 带开关盒的功能不提供输出
问题描述
我有一个获取日期的函数,应该根据日期返回符号。例如,如果一个人的输入是 15.4.1996
输出将是白羊座
我只检查日期和月份(年份不计),但问题是我没有得到任何输出。为什么?
function yourSign() {
var signDate = $("input[name='birthDate']").val();
switch (signDate) {
case 0:
outputSign = "Aries"
var dateFrom = "21/03";
var dateTo = "20/04";
var dateFrom = dateFrom.split("/");
var dateTo = dateTo.split("/");
var from = new Date(d1[2], parseInt(d1[1]) - 1); // -1 because months are from 0 to 11
var to = new Date(d2[2], parseInt(d2[1]) - 1);
signDate = new Date(c[2], parseInt(c[1]) - 1);
var signOutput = console.log(signDate > from && signDate < to)
$("#output").val(signOutput);
// document.getElementsByName('output')[0].value = signOutput;
}
}
<head>
<meta charset="utf-8" />
<title>your sign</title>
<link rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div>
<form id="yourSign">
<label for=birthDate>birthdate</label><br /><input type="date" name="birthDate" id="birthDate" /><br />
<button onclick="yourSign()" id="sendSign" name="sendSign">send</button><br>
<label for="output" id="output">your sign is: </label><br><input type="text" name="output">
</form>
解决方案
您的代码中有很多问题需要修复:
第 3 行:
switch (signDate) {
case 0:
=> 为什么要在日期的字符串表示上切换大小写?什么时候应该评估为 0 ?
第 8-12 行:
var dateFrom = "21/03";
var dateTo = "20/04";
var dateFrom = dateFrom.split("/");
var dateTo = dateTo.split("/");
=> 您将dateFrom
and声明dateTo
为字符串,然后将它们重新声明为数组(split()
函数的结果)。你应该避免这样做,这有点令人困惑。我假设,从后面的几行开始,你的意思是给你命名数组d1
和d2
.
第 14-16 行:
var from = new Date(d1[2], parseInt(d1[1]) - 1); // -1 because months are from 0 to 11
var to = new Date(d2[2], parseInt(d2[1]) - 1);
signDate = new Date(c[2], parseInt(c[1]) - 1);
=> c
,d1
并且d2
是未定义的。我猜是日期字符串被拆分的结果(见上文)d1
。d2
但是呢c
?
第 18 行:
var signOutput = console.log(signDate > from && signDate < to)
=> 您正在将返回值设置console.log()
为 signOutput 变量。console.log
将内容打印到控制台并返回undefined
.
推荐阅读
- reactjs - 再次使用搜索和渲染组件
- html - 使用 CSS 将容器 div 划分为列
- c# - 为什么来自异步无效的异常会使应用程序崩溃但来自异步任务被吞下
- java - Zuul 是 Web 应用程序的合适代理吗?
- nativescript - Nativescript ClassNotFoundException:com.tns.NativeScriptActivity
- functional-programming - Ocaml 中的参数多态性
- linux - GitHub - 如何检查哪个用户被用于克隆 repo?
- excel - 设置用于图表属性 VBA 的范围变量
- ruby-on-rails - Rails:HAML 上的 button_tag 与常规 %button
- python - 在 cython 中调用 np.sqrt