2011-11-04 3 views
0

나는 Drupal을 사용하여 웹 응용 프로그램을 개발 중입니다. 내 양식에는 두 개의 버튼, "제출"및 "지우기"가 있습니다. "지우기"버튼을 클릭하면 필요한 필드 유효성 검사를 포함하여 모든 유효성 검사를 건너 뛰고 싶습니다. 이것을 달성 할 방법이 있습니까?"버튼"양식 필드에 대한 유효성 검사 건너 뛰기

답변

1

양식 재설정 버튼이 필요할 때 이것이 내가하는 일입니다. 유 말 것을

`function form_clear($form, &$form_state) { 
    $form_state['rebuild'] = TRUE; 
    unset($form_state['values']); 
    drupal_goto($form['#action']); 
}` 
0

수행하려는 작업을 수행하는 방법이 있지만, Drupal 7에서만 작동합니다. "지우기"양식 필드를 정의 할 때 다음 줄을 추가하십시오.

나열되지 않은 부분이 검증되지 않아야 함을 시사 검증되어야 $form_state['values'] 부분이다 섹션의 배열을 제공로

'#limit_validation_errors' => array() 

그 속성에 대한 설명서를 설명한다. 이것은 일반적으로 "뒤로"버튼의 경우 다단계 양식에서 사용됩니다 (예 : '#limit_validation_errors' => array()은 현재 페이지의 양식 값이 어쨌든 무시되므로 아무 것도 검증하지 않음을 의미).

the documentation에서 만든 예를

는 "뒤로"버튼에 대해이지만, 모든 입력 값이 폐기와 같은, 당신의 경우에는 "취소"버튼을 적용, 그리고 그것을보고 이해가되지 않습니다 사용되지 않는 값에 대한 오류.

Drupal 6에서는 해당 form-field 속성을 사용하지 않습니다.
특히 값이 필요한 것으로 표시된 경우 값의 유효성을 검사하는 방법이 없습니다. 당신은 그 값들을 표시 할 필요가 없으며 양식 필드에 빨간색 별표 (필요한 값을 표시하는 드루팔 (Drupal) 방법 포함)를 표시하지만 필요한 값을 확인하는 다른 버튼에 대한 유효성 처리기를 작성해야합니다 입력되었습니다.

+0

@kiamlaluno ... :

'$form['clear'] = array( '#name' => 'reset', '#type' => 'submit', '#value' => t('Reset'), '#id' => 'edit-reset-button', '#validate' => array('form_clear'), );' 

가 클리어 기능을 추가 (간단한 해제를 사용하여 리디렉션) : 양식에서

(또는 form_alter) 코드는 다음 추가 올바른 것입니다. 드루팔 (Drupal 7 가능합니다.하지만 drupal6에 대한 해결책도 찾았습니다 .. 이것을 참조하십시오 .http : //drupalmodules.com/module/skip-required-validation – user731060

+0

해당 모듈의 프로젝트 페이지에 "이 모듈은 지원되지 않습니다. 대신 http://drupal.org/project/skip_validation을 사용하십시오. " – kiamlaluno

관련 문제