2013-05-14 6 views
0

나는 사용자가 작성해야하는 몇 개의 입력란이있는 양식이 있습니다. 양식에는 사용자의 현재 위치 (lat, long)에 대해 두 개의 숨겨진 필드가 있습니다. 나는이 분야를 채울 수있는 방법을 찾기 위해 많은 시간을 보냈습니다. 폼이 제출 될 때 (폼 태그에서 jQuery 또는 OnSubmit) 장치를 위치를 묻는 JavaScript 함수가 실행되어야합니다. 그러면 숨겨진 필드가 결과로 채워집니다.양식을 폼에 JavaScript 실행 Drupal 7

나는 이것을하기위한 작업 코드를 가지고 있지만 Drupal에 의해 호출되도록 할 수는 없다.

Drupal에서 양식을 제출할 때 JavaScript 기능을 실행할 수있는 방법이 있습니까? 아니면 다른 방법을 찾아야합니까?

많은 감사,

답변

2

시도가 #attributes를 사용하여 제출 버튼에 onclick 이벤트를 추가 할 수 있습니다. 당신이 그것에 추가해야합니다 있도록

$form['SUBMIT_BUTTON']['#attributes'] = array(
    'onclick' => array("YourJsCallback()"), 
); 

또는 당신은 이미 ['#attributes'] 배열 안에 뭔가가있는 경우.

$form['SUBMIT_BUTTON']['#attributes']['onclick'] = array("YourJsCallback()"); 
+0

감사합니다! 문제는 누군가가 버튼을 클릭 할 때만 작동하지만 키보드에서 Enter를 치면 작동하지 않는다는 것입니다. 이 사이트는 모바일 장치에서 실행되도록 만들어졌지만 사용자가 자신의 iPads 용 외부 키보드를 사용하지 않는다고 당연한 생각입니다. –

2

지금 작동하고있는 것으로 보입니다. 다음

$form['#attributes'] = array('OnSubmit' => 'myFunction();'); 
1

을 추가 당신이 당신이 당신의 자바 스크립트 코드를 덮어 쓸 수 있습니다 "WWW/기타 /은 ajax.js"에서 다음 훅 :

/** 
* Modify form values prior to form submission. 
*/ 
Drupal.ajax.prototype.beforeSubmit = function (form_values, element, options) 
{ 
     // This function is left empty to make it simple to override for modules 
     // that wish to add functionality here. 
};