2012-05-14 2 views
1

이 작년 질문을 받았다지만, 드루팔 7에 대한 변경 내 양식에여러 제출 양식 요소가있는 양식에 기본 제출 단추를 설정하는 방법은 무엇입니까?

Can I make the second or later button in a Drupal form the default button?

이 경우이 질문은 드루팔 6, 내가 궁금하네요 정확히 같은 질문, 내가 가진 약 네 개의 제출 단추 양식 요소. 4 개 중 3 개는 지정된 제출 기능을 가지고 있고 다른 하나는 기본 hook_form_submit() 기능을 사용하여 제출을 처리합니다.

$form['submit'] = array(
    '#type' => 'submit', 
    '#value' => t('Update'), 
); 

이것은 버튼 형태로 생성되는 순서는 다음과 같습니다

$form['reset'] = array(
    '#type' => 'submit', 
    '#value' => t('Reset Values'), 
    '#submit' => array('_phonebook_reset_config'), 
); 

이 같은 기본 버튼이 모습입니다 :

그래서이 같은 세 개의 버튼은 거의 볼 것입니다 : (Button_1, Button_2, Main_Button, Button_4).

지금 양식에서 Enter 키를 누르면 Button_1이 실행됩니다. 기본 단추를 기본 단추로 지정하여 사용자가 Enter 키를 누르면 기본 단추가 Button_1이 아닌 것이되도록합니다.

위에서 언급 한 게시물에서 답변 중 하나는 무게를 사용하는 것이 었습니다. 나는 체중을 사용해 보았지만 그 모든 것은 화면에서 버튼이 정렬 된 방식으로 바뀌었다. 예, Main_Button을 제출할 수 있었지만 원래 위치에 해당 버튼이 필요했습니다.

답변

2

HTML만으로는이 작업을 수행 할 수 없습니다. (그래서 Form API가 할 수있는 것은 아무것도 없다.) 다중 제출 양식에서 기본 제출을 처리 할 표준 및 html 속성이 없기 때문에. CSS를 사용해야하지만 재 스타일을 원하지 않는다면 jQuery를 사용할 수 있습니다. 행운을 빕니다!

//Not tested 
    $("#target").keypress(function(event) { 
    if (event.which == 13) { 
     event.preventDefault(); 
     $('correctSubmit').submit(); 
    } 
    }); 
+0

JavaScript가 최후의 수단이었을 것입니다. 그러나 이것을 통해서가 아닌 다른 방법이 없다면, 이것은해야 할 것입니다. – samwell

+0

@ chudapati09 스타일에 약간의 독창성이 필요할 수도 있지만 항상 CSS를 사용할 수 있습니다. 어쨌든 HTML로만 기본 제출을 변경할 수 없기 때문에 Form API를 비난하지 않습니다. 항상 첫 번째 것입니다. –

+0

@ chudapati09 조사한 결과 폼 Api 제한이 아닌 것으로 보입니다. 단지 HTML만으로는 불가능합니다. 그래서 PHP와 함께 할 수 없다는 것에 대해 나쁘다고 생각하지 마십시오 :) –