jquery – AJAX表单验证并提交

前端之家收集整理的这篇文章主要介绍了jquery – AJAX表单验证并提交前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Drupal 7中创建了一个表单,并希望使用 AJAX.我添加到提交按钮数组:
"#ajax" => array(
  "callback" => "my_callback","wrapper" => "details-container","effect" => "fade"
)

这是有效的,但整个验证功能都被忽略.在调用my_callback()之前,如何验证表单?如何在AJAX表单上显示状态或错误消息?

解决方法

这个问题和答案帮助我指导了正确的解决方案,但并不完全清楚.让我们这样做

事情要非常了解:

>验证错误消息将放置在#ajax [‘wrapper’]中指定的任何内容
>请密切注意Drupal Forms API documentation of the ajax wrapper所说的“具有此ID的整个元素被替换,而不仅仅是元素的内容.”
>因为这个元素被替换,你最好再提供它.这就是为什么Marius Ilie的回答是有效的 – 不是因为数组和#markup,而是因为他包含了设置了包装器id的div.

这是基于Marius在上述评论中为我工作的代码

function dr_search_test_form($form,&$fstate) {
  $form["wrapper"] = array("#markup" => "<div id='test-ajax'></div>");

  $form["name"] = array(
    "#type" => "textfield","#required" => true,"#title" => "Name"
  );

  $form["submit"] = array(
    "#type" => "submit","#value" => t("Send"),"#ajax" => array(
      "callback" => "dr_search_test_form_callback","wrapper" => "test-ajax","effect" => "fade",),);
  return $form;
}

function dr_search_test_form_callback($form,&$fstate) {
  return "<div id='test-ajax'>Wrapper Div</div>";
}

function dr_search_test_form_validate($form,&$fstate) {
  form_set_error("name","Some error to display.");
}

猜你在找的jQuery相关文章