【发布时间】:2011-08-04 23:01:54
【问题描述】:
我有以下表格供我的用户更改他们的电子邮件地址。
<form enctype="multipart/form-data" id="email_change_form" method="post" action="/my_account/">
<table>
<tr>
<td>
<label for="id_email">E-mail address</label>:
</td>
<td>
<input name="email" value="a@a.com" maxlength="75" type="text" id="id_email" size="30" />
</td>
<td class="error_email">
</td>
</tr>
</table>
<input type="hidden" name="form_id" value="email_change_form" />
</form>
单击保存按钮后(其代码未显示),表单将使用以下 jQuery 代码 ajaxly 发布到服务器:
$(".save_button").click(function() {
var $form = $("#email_change_form")
url = $form.attr("action");
$.post(url, $form.serialize(),
function(data) {
//upon success, the server returns the new email (data.email) in a json dictionary.
},
"json"
);
}
})
一旦服务器收到 POST,它需要验证数据库中不存在新的电子邮件(即电子邮件需要是唯一的)。假设服务器检测到重复的电子邮件,我不确定如何将错误传达回客户端。我很想在 json 字典中添加一个条目“duplicate_email:true”并将其返回给客户端。不知何故,我觉得这不是正确的方法。
请针对这种情况提出正确的方法。服务器应该如何将错误传递回客户端?以及如何在客户端捕获错误?谢谢。
【问题讨论】:
-
`我很想添加一个条目“duplicate_email:true”`这正是您需要做的:)