ВопросИзменение form_state из js (Drupal 7)

Имеется форма :

mymodule_someform($form, $form_state) {
	drupal_add_js(drupal_get_path('module', 'mymodule') .'/some.js');
	$val = isset($form_state['values']['files-info']) ? $form_state['values']['files-info'] : 'empty';
	$form['edit-wrapper'] = array(
		'#type' => 'markup',
		'#markup' => '<div id="edit-wrapper">'.$val.'</div>',
	);
	$form['files-info'] = array(
		'#type' => 'hidden',
		'#default_value' => '15',
	);
 
	$form['go'] = array(
		'#type' => 'submit',
		'#value' => t('go'),
		'#ajax' => array(
			'callback' => 'mymodule_callback',
			'wrapper' => 'edit-wrapper',
		),
	);
	return $form;
}
 
function mymodule_callback($form, &$form_state) {
	return $form['edit-wrapper'];
}

Требуется по определенному событию (которое не отследить из Друпала) изменить значение элемента формы(files-info) из javascript. Пытался делать так:

//some.js
jQuery(document).ready(
function(){
		fu = document.getElementById('someelement');
		fu.addEventListener("change", function () {
			jQuery('input[name="files-info"]').remove();
			jQuery('#someform').find('div').prepend('<input type="hidden" name="files-info" value="7">');
		}, false);
});

И так:

//some.js
jQuery(document).ready(
function(){
		fu = document.getElementById('someelement');
		fu.addEventListener("someevent", function () {
			jQuery('input[name="files-info"]').val("7");
		}, false);
});

Но в $form_state['values']['files-info'] по-прежнему '15'. Хотя действия в обработчике someevent выполняются. Так вот собственно вопрос — какие манипуляции мне нужно осуществить в some.js что бы в $form_state['values']['files-info'] получить 7 (естественно после выполнения события someevent)?
Спасибо!!

Комментарии

Аватар пользователя Spleshka
Spleshka написал:

Собственно, вот. Там можно любое событие в форме повесить, совсем не обязательно подключать дополнительно js.

06.03.2012 17:04

Комментировать