2014-09-12 115 views

回答

0

你可以用規則來做,但我會以編程的方式來做到這一點。

在規則中,您需要設置一個規則,如'pre save',在其中設置條件而不是放置表單錯誤。

以編程方式:實現一個hook_form_alter(),您應該在其中調用您驗證的函數的表單驗證。

https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_form_alter/7

function YOURMODULE_form_alter (&$form, &$form_state, $form_id) { 
    if ($form_id == 'YOURCHALLANGENODETYPENAME_node_form') { 
    $form['#validate'][] = 'YOURMODULE_form_validate'; 

    } 
} 

function YOURMODULE_form_validate ($form, &$form_state) { 
    // load your idea here st like: 
    $idea = entity_load_single('node', $form[YOURNODEREFERENCEID]); 
    if ($idea->status == 0) { 
    form_set_error ('YOURNODEREFERENCEFIELDNAME', t('ERROR_MESSAGE_TEXT')); 
    } 
} 
相關問題