【问题标题】:$.post validate form field and blck submit is there is error$.post 验证表单字段和 blck 提交是否有错误
【发布时间】:2015-08-11 15:58:00
【问题描述】:

我想在提交时验证表单字段,如果 ajax 返回消息以阻止表单提交。这是我的js代码:

$('form.p_form').submit(function (){
var description = $.trim($('#f9').val());
var aa = $.post("checkdescription.php",{
     description: description
 },
 function(data, status){
    if(data !== ''){
    return data;
    }
 });

 if(aa){
 alert(aa);
 return false;
 }
});

但上面的代码总是返回 [object XMLHttpRequest] - 如何读取返回的消息?

基本上在 checkdescription.php 我有验证字段的 php 代码,如果有错误,它会输入:

$return ='error message'; 

//file ends with:

echo json_encode($return);

如何阅读从响应中收到的确切消息?

提前谢谢你!

我也试过这个:

    $('form.p_form').submit(function (){
var description = $.trim($('#f9').val());
var aa = $.post("checkdescription.php",{
     description: description
 },
 function(data, status){
    if(data !== ''){
    return false;
    }
 });

但它不会阻止表单提交..

【问题讨论】:

  • 为什么不用e.preventDefault() 而不是return false
  • 您是否尝试过将 XMLHttpRequest 打印到控制台?如果您检查它,您可能能够找到您丢失的参数隐藏在对象中的位置
  • 请查看底部已编辑的问题

标签: javascript php jquery ajax forms


【解决方案1】:

您还需要将 PHP 标头设置为 application/json,因为此输出可以通过 JQuery 的 ajax 或 $.post 函数轻松读取,还需要更多结构化的 JSON 输出,您应该这样做...

PHP

<?php
$output = array('status'=>'true','message'=>'your error message');
//Setting up the output MIME type
header('Content-Type:application/json;');
//Providing Structured Output
echo json_encode($output);

这将很容易被 ajax 读取...

对于 Javascript

$('form.p_form').submit(function (){
var description = $.trim($('#f9').val());
var aa = $.post("checkdescription.php",{
description: description
},
 function(data, status){
   return data['status'];
   }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2014-07-19
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多