Создаю форму через api, все правильно делаю, в текстовых полях у меня есть default value, пользователь изменяет содержимое этих полей, сабмитит форму, но в функции сабмита изменений не видно, по прежнему в $form_state['values'] видно default value, в 6-ке такого небыло. Подозреваю что это какое-то кеширование. Как его отключить или как корректно очищать этот кеш?
Комментарии
В чем у вас ошибка невозможно сказать заочно. Приведите код, который вы используете.
$form['mail'] = array(
'#type' => 'textfield',
'#title' => t('E-mail'),
'#value' => t('Your e-mail'),
);
$form['pass'] = array(
'#type' => 'textfield',
'#title' => t('Pass'),
'#value' => t('Your pass'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Enter'),
'#suffix' => "<div class='forgot'><a href='/forgot'>".t('Forgot password')."</a></div>",
'#submit' => array('registration_user_login_form_submit'),
);
return $form;
}
это форма
if(!preg_match('|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is',$form_state['values']['mail'])){
form_set_error('mail',t("Mail is not valid"));
}
else{
list($username,$domain)=split('@',$form_state['values']['mail']);
if(!checkdnsrr($domain,'MX')) {
form_set_error('mail',t("Mail is not valid"));
}
}
}
$form_state['values'] - тут выдает значение которое было указано '#value' => t('Your e-mail'), все что вводит пользователь невидно
Читаем
Used to set values that cannot be edited by the user. Should NOT be confused with #default_value, which is for form inputs where users can override the default value
Используйте #default_value