PHP提交后调用JavaScript函数

时间:2015-12-01 06:55:18

标签: javascript php jquery

我试图弄清楚为什么在提交表单后没有调用此函数。 “checkForm()”JS函数在提交表单时工作正常,但我似乎无法使checkDates()函数正常工作。我尝试将它移到PHP代码上方并且没有出现警报消息。非常感谢任何帮助,谢谢!

这是我文件的伪代码版本:

<?php

if(isset($_POST['next'])){
    // Some PHP code

    echo "<script> checkDates(); </script>";
}

?>

<form name="form1" id="form1" method="post" action="<?php print $thispage;?>" onsubmit="return checkForm()">

// Some HTML code

</form>

<script>
var isDateTimeValid = true;

function checkDates() {
    alert("Hello");
    isDateTimeValid = false;
}

function checkForm () {

    if (isDateTimeValid == true) {
        return true;
    }
    else {
        return false;
    }
}

</script>

4 个答案:

答案 0 :(得分:4)

尝试一下它会起作用。

这里你的php代码必须在你的文件中是最后一个然后才能工作。否则没有。

     <form name="form1" id="form1" method="post" action="#" onsubmit="return  checkForm()">

     // Some HTML code
     <input type="hidden" name="next" value="sd">
     <input type="submit">

     </form>

     <script>
      var isDateTimeValid = true;

       function checkDates() {
       alert("Hello");
       isDateTimeValid = false;
      }

     console.log(isDateTimeValid);
     function checkForm () {

     if (isDateTimeValid == true) {
        return true;
     }
     else {
        return false;
       }
     }

   </script>
   <?php

    if(isset($_POST['next'])){
      echo "<script> checkDates(); </script>";
     } 
     ?>

答案 1 :(得分:1)

我认为你应该首先在你的javascript函数中执行此操作

<form method="post" action="" id="form">
    <!-- some html code -->
</form>

<script>
   // your all code

   $("#form").submit(function(e) {
      e.preventDefault();
      if (isDateTimeValid == true) {
        $.post(
           // post logic with proper url
        );
      }
      else {
        // return some error message
      }
  });
</script>

答案 2 :(得分:0)

尝试将javascript放在顶部。因为您正在调用可能尚未在DOM中定义的函数

答案 3 :(得分:0)

问题是你的变量和函数范围必须声明所有标识符。如果您使用&#34;浏览器控制台输出&#34;运行您的代码打开后,您将看到&#34; Uncaught ReferenceError:未定义checkDates&#34;表格提交后。如果你在javascript函数减速后放入php代码就可以了。

<form name="form1" id="form1" method="post" action="#" onsubmit="return checkForm()">

// Some HTML code
    <input type="submit" name="next">

</form>

<script>
var isDateTimeValid = true;

function checkDates() {
    alert("Hello");
    isDateTimeValid = false;
}

console.log(isDateTimeValid);

function checkForm () {
    console.log(isDateTimeValid);
    if (isDateTimeValid == true) {
        return true;
    }
    else {
        return false;
    }
}

</script>

<?php

if(isset($_POST['next'])){
    // Some PHP code

    echo "<script> checkDates(); </script>";
}

?>

查看浏览器控制台输出。