私は非常に単純な入力と、出発日のui-datepickerを使ってホテルの予約オプション(日付、夜の数、子供の数など)を集めています。
私はこのデータを収集し、隠された(醜い第三者の)形式でオプションの対応する '選択された'属性を設定するためにjQueryを使用しています。これはすべてうまくいきました。DOM要素が変更されていることがわかります。つまり、非表示のフォームの 'selected'オプションが変更されています。
最後に、フォームがjQueryを介して再度送信されます。
$("form[name=idForm]").submit();
問題:DOMでOKオプションが選択されていても、フォーム提出によって値が認識されません。
コード:
$(".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 で既にオンラインです(恥ずかしいこと、私は知っています)予約する '...