Drupal 7 开发内部培训资料, 分头诗人

form ajax提交

赞成!
0
否决!

因为是单页面站,表单在中间,不想提交此表单还刷新,万一有错误,用户还得往下拉到表单位置再改

所以我用ajax只是为了让页面保持在表单的位置

这是部分代码:

function request_greeter_form($form, &$form_state) {

$form['#attributes'] = array('id'=>'form');

...

$form['submit'] = array(
  '#type' => 'submit',
  '#value' => t('Submit'),
  '#ajax' => array(
   'callback' => 'request_greeter_form_submit_callback',
   'wrapper' => 'form',
   'effect' => 'fade',
  ),
);

$form['#validate'][] = 'request_greeter_form_validate';
return $form;
}

function request_greeter_form_submit_callback($form, $form_state) {...}

function request_greeter_form_validate($form, &$form_state) {...}

function request_greeter_form_submit($form, &$form_state) {...}

function request_greeter_mail($key, &$message, $params) {...}

1:如果我只是单纯想让表单提交,并异步验证表单

2:还有如何写表单验证的呢,我用form_set_error有时该出现提示却没有?

3:'#required' => TRUE;是不是就单单给表单加了个required的class,最后是否填了还得自己写判断?

4:如果我想加个把表单类容发邮件到邮箱,该把功能加在哪个函数里面呢?

5:ajax里的effect和method分别有什么用呢?

2 个回答

赞成!
0
否决!

不能提交后做锚点吗?直接跳回去表单位置,不一定要ajax

赞成!
0
否决!

但是遇到表单填写错误(validate函数没通过)的情况该怎么保留表单的情况下重新定向呢?

或者有没有办法让dp重新加载js文件呢,这个是我在ajax里面遇到的最大的问题