Javascript警报无法正常工作
我似乎无法解决这个问题。我一直在对x进行定义,这可能很简单,但我感谢您的帮助Javascript警报无法正常工作,javascript,html,function,Javascript,Html,Function,我似乎无法解决这个问题。我一直在对x进行定义,这可能很简单,但我感谢您的帮助 这可能与我的函数有关,因为我在设置它们时并不知道自己在做什么。函数AgeDale没有定义。您需要调用一个函数,而不是一个名为ageDale的变量。我不确定我是否完全理解您的逻辑,但是ageD返回的函数应该反过来返回一些值,因为您显然希望它们产生一些结果: <html> <body> <p>Enter names in the fields, then click "Submi
这可能与我的函数有关,因为我在设置它们时并不知道自己在做什么。函数AgeDale没有定义。您需要调用一个函数,而不是一个名为ageDale的变量。我不确定我是否完全理解您的逻辑,但是ageD返回的函数应该反过来返回一些值,因为您显然希望它们产生一些结果:
<html>
<body>
<p>Enter names in the fields, then click "Submit" to submit the form:</p>
<form name="form">
<input type="text" id="birthDate">
<br> Current Date
<br>
<input type="text" id="currentDate">
<br>
<br>
<br>
<a id="Submit_Button" onclick="test();" href="javascript:void(0);" title="Submit">Submit</a>
</form>
<script>
function test() {
var birthDate = document.getElementById("birthDate");
var currentDate = document.getElementById("currentDate");
var ageDate = birthDate.value - currentDate.value;
function ageD(ageDate) {
if (ageDate < 1) {
return function calculate(y) {
Math.abs(ageDate) = y
}
} else {
return function calculate(y) {
ageDate = y
}
}
}
var ageDale = ageD();
var x = ageDale(ageDate);
alert(x)
}
</script>
</body>
</html>
目前,这些计算函数没有返回任何内容,因此x是未定义的。看起来你想要这样的东西:
var x = ageDale(ageDate);
函数需要一个参数,而您没有传递任何东西,因此函数总是返回else语句
您正在将该函数的返回值设为x变量,但它不会返回任何内容如果您只是试图获取用户的年龄,您可以让他们输入一个年份,如1990年和2014年,如下所示:
否则,如果您想让他们输入诸如dd/mm/yyyy之类的日期,您必须输入一些不同的日期。不工作不是一个很好的问题描述,您根本没有收到任何警报,还是只是警报未定义?我只是得到警报说已定义,控制台上没有任何错误您没有从计算函数var ageDale=ageD返回任何内容;虽然命名很有趣,但它被分配了调用ageD的返回值,这是一个函数。这允许ageDaleageDate;因为您正在调用返回的函数而使用。上面代码的这一方面没有问题。正如其他人指出的那样,问题在于返回的函数不返回值,因此会发出未定义的警报。
function test() {
var birthDate = document.getElementById("birthDate");
var currentDate = document.getElementById("currentDate");
var ageDate = currentDate.value - birthDate.value;
function ageD(ageDate) {
if (ageDate < 1) {
return function calculate(y) {
Math.abs(ageDate) = y
}
} else {
return ageDate
}
}
var ageDale = ageD();
var x = ageDate;
alert(x)
}
function test() {
var birthDate = document.getElementById("birthDate");
var currentDate = document.getElementById("currentDate");
var ageDate = currentDate.value - birthDate.value;
function ageD(ageDate) {
if (ageDate < 1) {
return function calculate(y) {
Math.abs(ageDate) = y
}
} else {
return ageDate
}
}
var ageDale = ageD();
var x = ageDate;
alert(x)
}
function test() {
// convert the input into intiger
var birthDate = parseInt(document.getElementById("birthDate").value, 10);
var currentDate = parseInt(document.getElementById("currentDate").value, 10);
var ageDate = birthDate - currentDate;
function ageD(ageDate) {
return Math.abs(ageDate);
}
var x = ageD(ageDate);
alert(x);
}