javascript - $.post 验证表单字段并在出现错误时阻止提交

标签 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 !== ''){
    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;
    }
 });

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

最佳答案

还需要将 PHP header 设置为 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'];
   }
});

关于javascript - $.post 验证表单字段并在出现错误时阻止提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31946581/

相关文章:

php - 如何回显 html 元素,内联

javascript - JQuery 使用 .on() 添加对象函数

javascript - 将拖放从 jquery-ui-sortable 列表更改为单击事件

javascript - 如何从服务器数据创建 "add to calendar"iCal 链接(.ics 文件)并将其发送回我的 webApp?

javascript - 如何使用 jQuery AJAX 暂停和启动 gif

javascript - Jquery slider 在事件更改时更新值

javascript - 将 float 参数从 html 传递到 javascript

javascript - 获取传递的值对应的枚举键

php - 如何将这部分代码更改为 PHP 准备语句?

php - MySql 根据查询结果确定行偏移