显示没有页面刷新的错误

时间:2013-08-26 23:45:49

标签: php javascript ajax jquery

我正在为我的网站制作评论功能,并且需要将其设置为在此人提交评论(并且包含错​​误)之后,它将显示错误而不刷新页面。我几乎不了解AJAX / JQuery,所以我需要一些帮助。

这是我到目前为止所拥有的:

<?php
  if(isset($_POST['reply_submit'])) {
    $reply = $_POST['new_reply'];
    $reply_message = "";

    if(empty($reply)) {
      $reply_message = "Your comment is too short.";
    }
  }
?>

<html lang="en">
  <body>
    <form class="no-margin" method="POST" action="">
      <textarea name="new_reply" placeholder="Write a reply..."></textarea>
      <button name="reply_submit" class="btn post-button" type="submit">Post' . (isset($reply_message) ? '<div class="comment-warning">' . $reply_message . '</div>' : '') . '</button>
    </form>
  </body>
</html>

所以我需要它做的是,如果该人的评论框不符合标准(在这种情况下,是一个空字段),我需要它来显示此错误行而不刷新页面:

<button name="reply_submit" class="btn post-button" type="submit">Post' . (isset($reply_message) ? '<div class="comment-warning">' . $reply_message . '</div>' : '') . '</button>

请帮忙。

3 个答案:

答案 0 :(得分:0)

我认为通过Javascript在客户端进行验证更容易。不要只使用submit类型的按钮,而是编写一个函数并将其绑定到按钮的onclick()事件。

这样的事情:

function submit() {
  if (document.getElementById("myTextarea").value=='') {
    alert("Your comment is too short.");
  }
  else {
    document.getElementById("myForm").submit();
  }
}

答案 1 :(得分:0)

使用Javascript

HTML:

<button name="reply_submit" class="btn post-button" onclick="validate()">Post comment</button>

使用Javascript:

<script>
function validate(){
  reply = document.getElementById('new_reply').value;
  if (reply==null || reply=="")
    {
    alert("Your comment is too short.");
    return false;
    }
  }
</script>

答案 2 :(得分:0)

对于空字段或输入框长度等基本验证,您可以使用jQuery验证插件 - http://jquery.bassistance.de/validate/demo/或自己编写一些内容。

您可以使用jQuery来实现更好的AJAX /错误处理。在这里查看jQuery AJAX的文档 - http://api.jquery.com/jQuery.ajax/

$.ajax({
  url: "test.html", //URL to send the request
  success: function() {
    //do something. This is fired when your response is successful
  },
  error: function() {
    //highlight the field that has error or do something else here.
  }
);

希望这会有所帮助:)