2013-04-09 67 views

回答

-1

創建自定義模塊,並使用hook_form_alter添加新的自定義驗證和提交的回調:

function YOUR_MODULE_form_alter(&$form, &$form_state, $form_id) 
{ 
    if($form_id == "user_profile_form") { 
     $form['#validate'][] = 'your_new_validation_callback'; 
     $form['#submit'][] = 'your_new_submission_callback'; 
    } 
} 

function your_new_validation_callback($form, &$form_state) 
{ 
    // add your validation logic 
} 

function your_new_submission_callback($form, &$form_state) 
{ 
    // add your submission logic 
} 

希望這有助於。

+0

嗨!但是我需要在從客戶端發送到服務器端之前進行驗證。這樣它不會工作,會嗎? 謝謝! – user1695700 2013-04-10 14:53:19

+0

這就是驗證的全部目的。它在**提交之前稱爲**。如果出現問題,可以使用['form_set_error'](http://api.drupal.org/api/drupal/includes!form.inc/function/form_set_error/6)針對表單元素提交錯誤。在這種情況下,您的提交功能沒有達到。 – Max 2013-04-10 16:00:42

+0

就http流量而言,該操作是正確的:這種方式不會改變從瀏覽器發送到服務器的數據。只有在數據到達服務器時,驗證纔會採用HTTP POST請求的形式。 – kekkis 2013-04-10 18:29:00