【问题标题】:javascript form return but not working properlyjavascript表单返回但无法正常工作
【发布时间】:2016-05-03 10:31:15
【问题描述】:
 function validateForm() {
    if ($('#date').val() == "") {
        $('#date').css("border","1px solid #FF0000");
        $('#date').focus();
        return false;
    }
    else if ($('#time').val() == "") {
        $('#time').css("border","1px solid #FF0000");
        $('#time').focus();
        return false
    }
    else if ($('#date').val() != "" && $('#time').val() != "") {
        var send = $.post("appointment.php",{
            package     : $('#package').val(),
            first_name  : $('#first_name').val(),
            last_name   : $('#last_name').val(),
            tel         : $('#tel').val(),
            email       : $('#email').val(),
            date        : $('#date').val(),
            time        : $('#time').val(),
        });

        send.success(function (result) {
            if (result == 'TRUE') {
                return true;
            }
            else if (result == 'FALSE') {
                return false;
            }
        });

        send.error(function () {
            alert("ajax error");
            return false;
        });

    }
    else {
        return true;
    }

}

<form name="step2" id="step2" action="./step3.php" onSubmit="return validateForm();" method="post">
...
</form>

即使一切都返回假;仍然继续step3.php页面。我试了很多次,结果一样。

我的约会.php 只返回 echo "TRUE" 或 "FALSE"。

知道我的编码有什么问题吗?

谢谢。

【问题讨论】:

  • 您是否尝试过阻止该事件的传播? Look at it
  • 尝试在提交按钮点击事件中调用此函数return validateForm();

标签: javascript php jquery html


【解决方案1】:

这个问题是因为validateForm 在返回之前没有等待您的异步调用 ($.post) 完成。

实现您的目标的一种方法是始终使用return false。然后在成功时,手动提交不调用onSubmit 函数。

function validateForm() {

  if ($('#date').val() == "") {
    $('#date').css("border", "1px solid #FF0000");
    $('#date').focus();

  } else if ($('#time').val() == "") {
    $('#time').css("border", "1px solid #FF0000");
    $('#time').focus();

  } else {

    var send = $.post("appointment.php", {
      package: $('#package').val(),
      first_name: $('#first_name').val(),
      last_name: $('#last_name').val(),
      tel: $('#tel').val(),
      email: $('#email').val(),
      date: $('#date').val(),
      time: $('#time').val(),
    });

    send.success(function(result) {

      if (result == 'TRUE') {
        $('#step2').get(0).submit();
      }

    });

  }

  return false;
}

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 2020-07-17
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多