我试图弄清楚为什么在提交表单后没有调用此函数。 “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>
答案 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>";
}
?>
查看浏览器控制台输出。