Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $.post验证表单字段和blck提交是否存在错误_Javascript_Php_Jquery_Ajax_Forms - Fatal编程技术网

Javascript $.post验证表单字段和blck提交是否存在错误

Javascript $.post验证表单字段和blck提交是否存在错误,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我想在提交时验证表单字段,以及ajax是否返回消息来阻止表单提交。以下是我的js代码: $('form.p_form').submit(function (){ var description = $.trim($('#f9').val()); var aa = $.post("checkdescription.php",{ description: description }, function(data, status){ if(data !== ''){ re

我想在提交时验证表单字段,以及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]——如何读取返回的mesage

Basicali在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;
    }
 });

但它不会阻止表单提交。

您还需要将PHP头设置为application/json,因为JQuery的ajax或$post函数可以轻松读取此输出。此外,还需要更多的结构化json输出,下面是您应该如何做的

对于PHP
您还需要将PHP头设置为application/json,因为JQuery的ajax或$post函数可以轻松读取此输出。如果还需要更多结构化的json输出,下面是您应该如何做的

对于PHP
为什么不使用
e.preventDefault()
而不
返回false
?您是否尝试过将XMLHttpRequest打印到控制台?如果您对其进行检查,可能会发现缺少的参数隐藏在对象中的位置。可能重复的请参见底部的编辑问题为什么不使用
e.preventDefault()
而不是
return false
?您是否尝试将XMLHttpRequest打印到控制台?如果您检查它,您可能会发现缺少的参数隐藏在ObjectProblem中的位置。可能的重复项请参见底部编辑的问题
<?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);
$('form.p_form').submit(function (){
var description = $.trim($('#f9').val());
var aa = $.post("checkdescription.php",{
description: description
},
 function(data, status){
   return data['status'];
   }
});