如何在Drupal 7中的field widget submit按钮上使用ajax,而不验证表单的其余部分

如何在Drupal 7中的field widget submit按钮上使用ajax,而不验证表单的其余部分,ajax,validation,drupal-7,drupal-modules,Ajax,Validation,Drupal 7,Drupal Modules,我正在为分类术语引用制作一个新的小部件,其中一个submit按钮向drupal发出ajax回调以更改表单。以下是我所拥有的: $element['my_module_wrapper']['add'] = array( '#type' => 'submit', '#value' => t('Add'), '#ajax' => array( 'callback' => 'my_module_ajax', 'wrapper' =&

我正在为分类术语引用制作一个新的小部件,其中一个submit按钮向drupal发出ajax回调以更改表单。以下是我所拥有的:

$element['my_module_wrapper']['add'] = array(  
  '#type' => 'submit',  
  '#value' => t('Add'),  
  '#ajax' => array(  
    'callback' => 'my_module_ajax',  
    'wrapper' => $field_name . '_my_module_container',  
  ),
);
我让ajax调用正常工作,但它验证整个表单,并在未填写所需的无关字段时抛出错误。我怎样才能阻止这一切


也可能相关,当调用ajax时,它似乎没有调用我的hook\u field\u widget\u form()函数。。。这是由同样的问题引起的吗?

您是否尝试过将字段#type='button'改为'submit'?据我所知,无论是否是ajax表单项,提交按钮都会在验证数组中运行。

请看下面给出的轮询模块示例:


完整的函数显示了如何处理“限制验证错误”。

+1我对“状态”也有同样的问题,我正在寻找干净的Drupal方法来解决它(黑客的方法是覆盖“验证数组”或教育用户在使用触发“ajax”或“状态”的UI元素之前填充所有必需的字段).常规按钮也会触发#验证回调:/