我有一個Drupal表單,其中有人輸入信息,我需要做一個數據庫查詢來檢查它在提交之前是否有效。我想要有一個按鈕,用戶可以單擊以檢查有效性(或在用戶離開該字段後自動完成),然後顯示有關他的選擇的一些信息。
我知道我可以在提交表單時使用hook_form_submit來檢查表單,如果有任何錯誤,然後停止進程,但我希望用戶能夠在提交表單之前確認他們選擇了正確的事情。以Drupal的形式驗證輸入
0
A
回答
2
我還沒有親自試過這個模塊,但它可能是你在找什麼:
http://drupal.org/project/ajax
如果你只是尋找一種方式來做到實時查找(例如輸入書籍條碼並獲取標題),您也可以使用Drupal的自動完成功能,但它需要您編寫自己的自動完成功能來處理數據庫查找。
0
看一看:Basic form with validate handler。你真的只需要添加一個類似於mymodule_myform_validate($form, &$form_state) { ... }
的功能。從鏈接頁面:
「這增加了一個新的表單字段,並用驗證函數驗證它,也稱爲驗證處理程序。」
<?php
function my_module_menu() {
$items = array();
$items['my_module/form'] = array(
'title' => t('My form'),
'page callback' => 'my_module_form',
'access arguments' => array('access content'),
'description' => t('My form'),
'type' => MENU_CALLBACK,
);
return $items;
}
function my_module_form() {
return drupal_get_form('my_module_my_form');
}
function my_module_my_form($form_state) {
$form['name'] = array(
'#type' => 'fieldset',
'#title' => t('Name'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['name']['first'] = array(
'#type' => 'textfield',
'#title' => t('First name'),
'#required' => TRUE,
'#default_value' => "First name",
'#description' => "Please enter your first name.",
'#size' => 20,
'#maxlength' => 20,
);
$form['name']['last'] = array(
'#type' => 'textfield',
'#title' => t('Last name'),
'#required' => TRUE,
);
// New form field added to permit entry of year of birth.
// The data entered into this field will be validated with
// the default validation function.
$form['year_of_birth'] = array(
'#type' => 'textfield',
'#title' => "Year of birth",
'#description' => 'Format is "YYYY"',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;
}
// This adds a handler/function to validate the data entered into the
// "year of birth" field to make sure it's between the values of 1900
// and 2000. If not, it displays an error. The value report is // $form_state['values'] (see http://drupal.org/node/144132#form-state).
//
// Notice the name of the function. It is simply the name of the form
// followed by '_validate'. This is the default validation function.
function my_module_my_form_validate($form, &$form_state) {
$year_of_birth = $form_state['values']['year_of_birth'];
if ($year_of_birth && ($year_of_birth < 1900 || $year_of_birth > 2000)) {
form_set_error('year_of_birth', 'Enter a year between 1900 and 2000.');
}
}
?>
+0
所以,如果我正確閱讀這個,用戶仍然必須點擊提交之前,他們的輸入得到驗證。我正在尋找一種方法讓他們在點擊提交之前檢查輸入是否有效(例如,他們輸入書籍條形碼,然後在提交之前告訴他們書名)。這樣,即使它是「有效」條目,它們也不會意外輸入錯誤的內容。 –
相關問題
- 1. 驗證輸入形式
- 2. 如何驗證的意見輸入暴露形式在Drupal-6
- 3. 驗證輸入的形式在PHP
- 4. 輸入驗證在AngularJs形式
- 5. 驗證輸入數組形式jquery.validate.min.js
- 6. 以angular2形式輸入之間的驗證依賴關係?
- 7. 搞清楚形式驗證,以跨越多個輸入驗證值
- 8. 以角度形式設置自定義輸入驗證
- 9. 以html格式輸入驗證碼
- 10. 以刪除形式驗證
- 11. 以模態形式驗證
- 12. 難以驗證textarea輸入
- 13. 輸入格式驗證
- 14. 輸入驗證 - 款式
- 15. TextField輸入驗證模式
- 16. 形式驗證
- 17. 隱形谷歌驗證碼驗證時用戶的輸入
- 18. 驗證任意數量的輸入字段的形式
- 19. AngularJs驗證器與許多動態創建的輸入形式
- 20. 的Struts沒有驗證電子郵件形式輸入
- 21. Zend的文件輸入形式AJAX驗證
- 22. YII框架形式ajax驗證只是輸入的一部分
- 23. 特殊形式的字符串輸入驗證
- 24. 如何讓以前輸入的值驗證錯誤後出現多級形式
- 25. 驗證輸入
- 26. 驗證輸入
- 27. 輸入驗證
- 28. 驗證輸入
- 29. javascript形式驗證
- 30. 笨驗證形式
這是一個自定義表單嗎? – Laxman13
是的,我自己做的 –