带有json的Jquery表单没有获取值

Posted

技术标签:

【中文标题】带有json的Jquery表单没有获取值【英文标题】:Jquery form with json no get values 【发布时间】:2013-07-24 18:26:11 【问题描述】:

我有 2 个文件,一个用于验证表单的文件,用 php 编写,在这个文件中,如果表单是好的或坏的,我可以得到下一个响应:

print '"captcha_error":"bad"';
print '"email_send":"bad"';
print '"email_request":"ok"';

为了从文件 2 中启动表单,我使用带有 json 的 jquery:

<script type="text/javascript">
function send_contacter(idcc)


$.ajax(

cache: false,
url: 'send_form.php',
type: 'POST',
dataType: 'json', 
success: function(data) 



if (data.captcha_error=="bad")

alert("Captcha Error");


if (data.email_send=="bad")

alert("E-Mail Errors");


if (data.email_request=="ok")

alert("E-Mail Send");





);


</script>

在提交的同一页面中,我使用了一个表单:

<?php 
$tfw_number_format="1";
?>

<form id="contact-form-widget-<?php echo $tfw_number_format;?>" class="contact-form-widget" method="post" action="" onsubmit="send_contacter('<?php echo $tfw_number_format;?>');return false;" name="contact-form-widget-<?php echo $tfw_number_format;?>">

我得到的问题是这个,假设我去使用表格,对吗?我收到一个警报 ok ,但总是相同的警报,第一个警报,如果我去启动表单并且不使用 jquery 一切正常,这是因为 jquery 没有启动正确和 json 检索数据不好,因此无法检测到真实数据以显示和区分值,我认为.....

如果我使用 alert(""+data);总是没有从 json 接收值,总是在警报中显示对象对象

我认为我的代码中有一些不好的地方

谢谢你的帮助,问候

【问题讨论】:

打开您的控制台并查看错误并跟踪请求&我认为您需要在提交表单时使用 我这样做了,没有出现问题 如果你看到我的脚本我使用onsbumit 抱歉,提交时距离很远,您的 AJAX 请求是否到达 PHP 脚本尝试使其在 PHP 中死亡并查看控制台以获取响应 【参考方案1】:

您必须先检查对象属性是否已定义。

if (data.captcha_error !== undefined && data.captcha_error=="bad") 
    alert("Captcha Error");


if (data.email_send !== undefined && data.email_send=="bad") 
    alert("E-Mail Errors");


if (data.email_request !== undefined && data.email_request=="ok") 
    alert("E-Mail Send");

【讨论】:

以上是关于带有json的Jquery表单没有获取值的主要内容,如果未能解决你的问题,请参考以下文章

jquery获取元素值的方法(常见的表单元素)

jquery获取input表单值的代码

Jquery表单提交后获取返回Json值

将Jquery序列化后的表单值转换成Json

jquery获取radio值求教

如何使用jquery获取html表单的每个客户端控件的名称name和value值?以json格式返回