Я собираю варианты бронирования отелей (дата, количество ночей, количество детей и т. Д.) С помощью очень простого набора данных, а также выбора даты для даты отъезда.
Я использую jQuery для сбора этих данных и затем устанавливаю соответствующие «выбранные» атрибуты опций в скрытой (уродливой сторонней) форме.Все это происходит нормально, и я вижу, что элементы DOM меняются - т.е. изменяются «выбранные» параметры в скрытой форме.
Наконец, форма отправляется снова через jQuery:
$("form[name=idForm]").submit();
ПРОБЛЕМА: значения не распознаются формой, отправьте, даже если «параметры» выбраны «нормально» вDOM.
Код:
$(".check").click(function(){
$(".book_result").hide(); /* just to hide verification feedback*/
var date = $("#datepicker").val();
var nights = $("#book_nights").val();
var adults = $("#book_adults").val();
var children = $("#book_children").val();
var access_code = $("#book_access_code").val();
if (date=='no date selected'){
//all the code for verifying the users' input...
return;
}
else {
var newDate = date.split(' - ');
var day = parseInt(newDate[0]-1);
var month = parseInt(newDate[1]-1);
var year = parseInt(newDate[2]);
var nights = nights - 1;
var adults = adults - 1 ;
var children = children - 1;
if (nights < 0){nights=0};
if (adults < 0){adults=0};
if (children < 0){children=0};
$("#fromday option").eq(day).attr("selected", "selected");
$("#frommonth option").eq(month).attr("selected", "selected");
$("#fromyear option").eq(year).attr("selected", "selected");
$("#nbdays option").eq(nights).attr("selected", "selected");
$("#adulteresa option").eq(adults).attr("selected", "selected");
$("#enfantresa option").eq(children).attr("selected", "selected");
$("#fromday option").eq(day).siblings().removeAttr("selected");
$("#frommonth option").eq(month).siblings().removeAttr("selected");
$("#fromyear option").eq(year).siblings().removeAttr("selected");
$("#nbdays option").eq(nights).siblings().removeAttr("selected");
$("#adulteresa option").eq(adults).siblings().removeAttr("selected");
$("#enfantresa option").eq(children).siblings().removeAttr("selected");
$("#AccessCode").val(access_code);
$("form[name=idForm]").submit();
}
Итак, все очень просто - за исключением того, что это не работает, и я потерял почти 2 дня: (
Этокак будто страница не распознает, что выборки скрытой сторонней формы были изменены - я думал, что отправка формы будет считывать теги в DOM, нет?
Любая помощь будет отличной - я 'Я искал похожие проблемы на SO и через Google, но на самом деле я не нахожу ту же ситуацию, когда формой манипулируют с помощью jquery, а затем отправляют.http://www.hotelginorialduomo.com - просто нажмите «сделать заказ» ...