2

2つの別々のフィールドが値を変更したときにクリックを送信ボタンに送信する必要があります(「onHide」)。このコードは、ホテル予約の2つのカレンダーに関連しています。おそらく解決策は私が思うよりも単純ですが、私はjqueryの初心者です。基本的なスクリプト:

$("#checkIn").bind("onHide", function()  { 
    checkIn = $("#checkIn").val();

    $.post('file.php', {"checkIn": checkIn}, function() {
        // do something more
    });
});


$("#checkOut").bind("onHide", function()  {  
    checkOut = $("#checkOut").val();

    $.post('file.php', {"checkOut": checkOut}, function() {
        // do something more
    });     
});

...したがって、次のステップは次のようになります(両方のフィールドの値が変更された場合)。

$("#submitButton").trigger('click'); 

関数(onHide)は正常に機能します。ところで:checkOutはcheckInに依存しますが、重要ではありません。クリックをsubmitButtonに送信する方法を知る必要があるだけです。いくつかの提案をお願いしますか?前もって感謝します。

4

2 に答える 2

3

ボタンのクリックをシミュレートするよりも、フォームを直接送信する方がよいでしょう:

document.forms[0].submit();//this will submit the first form found on the page

またはJQueryの送信(@akalucasに感謝):

$("#form").sumbit();

送信時に追加の作業が必要な場合は、関数を送信ボタンのクリック イベントにバインドし、フィールドが変更されたときにその関数を呼び出すことをお勧めします。

$("#submitButton").click(SubmitForm);

function SubmitForm(){
   //something else I might need to do like validation
   document.forms[0].submit();
}

function AnyOtherFuntion(){
   SubmitForm();
}

編集:新しい情報に基づいて、次のようなものが必要になる場合があります:

var checkInValue = "";
var checkOutValue = "";

$(document).onload(function(){
   checkInValue = $("#checkIn").val();
   checkOutValue = $("#checkOut").val();

   $("#checkIn").change(OnChange);
   $("#checkOut").change(OnChange);
});

function OnChange(){
   if(checkInValue != $("#checkIn").val() && checkOutValue != $("#checkOut").val()){
      SubmitForm();
   }
}

function SubmitForm(){
   document.forms[0].submit();
}
于 2012-06-12T09:59:29.583 に答える
0

送信をクリックせずにフォームを送信できます。

  document.form_name.submit();
于 2012-06-12T10:04:02.903 に答える