Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript警报无法正常工作_Javascript_Html_Function - Fatal编程技术网

Javascript警报无法正常工作

Javascript警报无法正常工作,javascript,html,function,Javascript,Html,Function,我似乎无法解决这个问题。我一直在对x进行定义,这可能很简单,但我感谢您的帮助 这可能与我的函数有关,因为我在设置它们时并不知道自己在做什么。函数AgeDale没有定义。您需要调用一个函数,而不是一个名为ageDale的变量。我不确定我是否完全理解您的逻辑,但是ageD返回的函数应该反过来返回一些值,因为您显然希望它们产生一些结果: <html> <body> <p>Enter names in the fields, then click "Submi

我似乎无法解决这个问题。我一直在对x进行定义,这可能很简单,但我感谢您的帮助


这可能与我的函数有关,因为我在设置它们时并不知道自己在做什么。

函数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);
}