私は非常に簡単な入力と出発日のui-datepickerでホテルの予約オプション(日付、夜の数、子供の数など)を集めています。jQueryを選択して送信
私は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で類似の問題を検索しましたが、私は同じ状況を本当に見つけることはできません。 mはjquery経由で操作されています。
それはhttp://www.hotelginorialduomo.comで(私が知っている、恥ずかしい!)すでに、すべてのオンラインだ - ちょうど「予約します」をクリックします...
正確には機能しません。フォーム送信によって認識されない値は何ですか?より正確な詳細をお知らせください。 –
@Shadow Wizard - 提出時に、フォームの 'action'属性内のspec'edファイルを明示的に呼び出しています。結果のクエリ文字列には、DOMで「選択済み」とマークされたオプションの値はありません。デフォルトでは、それぞれのオプションがデフォルトになっています。したがって、フォームの提出はDOMのjquery操作によって '選択されたそれらの値をピックアップしていません... –
ハ - あなたはそれに私を打つ - シャドウウィザードに感謝!私は自分のQに答えることが許されていないことを発見するためだけに答えを入力していました - 100人未満の担当者。私はこれを投稿していた:OK - それはソートされて... 問題は次のとおりです。 $( "#fromdayオプション")eq(日).attr( "selected"、 "selected"); これは実際に、HTML選択オプションの「選択された」属性を操作しましたが、フォーム送信によって変更された値として選択されませんでした。代わりに、これは機能しました... $( "#fromday")。val(day); 男、できてうれしいです! オーバーナウ... S –