Упрощенная версия проблемы, с которой я столкнулся:
Вот моя HTML-форма:
<form enctype="multipart/form-data" method="post" action="/controller/action">
<input type="text" name="title" id="title" value="" class="input-text" />
<input type="hidden" name="hidden_field" value="" id="hidden_field" />
<input type="submit" name="submit_form" id="submit_form" value="Save" class="input-submit" />
</form>
Вот код JavaScript:
$(document).ready(function() {
$('#submit_form').hover(function() {
$('#hidden_field').attr('value') = 'abcd';
});
});
А вот действительно короткая версия бэкэнда PHP:
if (isset($_POST)) {
var_dump($_POST);
}
Что я делаю, так это на пару секунд нажимаю кнопку #submit_form, чтобы убедиться, что код jQuery был выполнен, затем отправляю форму и:
- $ _POST ['hidden_field'] пусто!
Почему это? Он должен содержать «abcd», поскольку я вставляю его в скрытое поле с помощью jQuery для события hover.