首页 / 帖子
自定义views中的字段,在opetions_form里面的form元素为什么不能使用#ajax 属性?

在这个方法中写如下代码,watchdog里面提示Invalid form POST data.

function options_form(&$form, &$form_state) { 

$form['entity_settings']['entity_select'] = array( 
    //       '#title' => t('node type'), 
    //       '#options' => node_type_get_names(), 
    //       '#type' => 'select', 
    //       '#description' => t('Choose a node type'), 
    //       '#default_value' => isset($this->options['entity_settings']['entity_select']) ? $this->options['entity_settings']['entity_select'] : array(),
    //       '#dependency' => array( 'edit-options-element-type-enable' => array(1), ), 
    //       '#ajax' => array(     
    //          'callback' => 'entity_select_callback',     
    //          'wrapper' => 'entity-select-wrapper-div',     
    //          'method' => 'replace',     
    //          'effect' => 'fade',   
    //     )
    // );


1个答案
YOYO
发布于:2014-07-29 00:18

信息给的不够全面。

首先可以肯定options_form里面是可以正常使用#ajax属性的,因为views模块里面已经有例子可以参考了(具体见views/modules/field/views_handler_field_field.inc里,$form['type']定义字段的formatter,可以自己弄一个image field看效果)


用firebug之类的工具,看看改变选项时提交的数据是否正常,或者先别用ajax试试。

另外没看到有 parent::options_form($form, $form_state) 这句,如果没有请加上保证提交时有正确的form_state