0

ボタンクリックイベントでajaxを介してパラメーターとして渡すjquery 3つのドロップダウンリスト値で
は、ドロップダウン値を保存する値は変更関数から使用できませんか?

 $("#rooms").change(function () {
        var searchRooms = $("#rooms").val();       
 });

このように、ボタン クリック イベントに 3 つの変数 (ドロップダウン値) が必要
です。ビューには 3 つのドロップダウン リストがあります。上記のコードを使用して、1 つのドロップダウンリストから 1 つの値を選択しました。ここで、3 つの異なるドロップダウン リストから 3 つの値を選択する必要があります。上記のコードを使用して 1 つのドロップダウンから 1 つの値を選択すると、その値が searchRooms 変数に格納されます。次に、変数をコントローラーに使用 (渡す) 必要があります。変更機能を閉じると、可変値を使用できなくなります。私は正しいですか?そのため、ボタンクリックイベントで3つのドロップダウンリスト値をコントローラーに渡す必要があります

グローバル変数として宣言する別の問題。

  $(#"btn").click(function(){
    var searchRooms;
    var searchAdults;
    var searchChildren;
     $("#rooms").change(function () {
        searchRooms = $("#rooms").val();
    });

    $("#adults").change(function () {
        searchAdults = $("#adults").val();
    });

    $("#searchChildren").change(function () {
        searchChildren = $("#children").val();
    });

   $.ajax({
   i need pass the above three variable values to controller here
  });
  });

この変更後の関数では、変数 searchRooms の値はどうなりますか?
アラートで、値が未定義であることを取得しています。searchRooms の値がありませんか?
その変数をコントローラーに渡すにはどうすればよいですか?

4

1 に答える 1

0

関数のスコープ外で変数searchRoomsをグローバル(または他の適切な囲みスコープ)として定義する.changeと、AJAX呼び出しを行うときに使用できるようになります。または、関数で行っているのとまったく同じ方法で AJAX 呼び出しを行うときに、必要な値を取得することもできます.change

.change実際、現状では、関数は何の役にも立ちません。から値を取得して#rooms、すぐに範囲外になるローカル変数に入れています。とにかく、あなたがそこで何をしようとしていたのかは明らかではありません。

したがって、これを行うことができます:

var searchRooms;
$("#rooms").change(function () {
    searchRooms = $("#rooms").val();       
 });

または、次のようにすることもできます。

$("#mybutton").click(function() {
    var searchRooms = $("#rooms").val();
    var myotherdropdown = $("#otherdropdown").val();
    // now do your AJAX call, passing in your variables you grabbed above.
    $.ajax(//.....
});

更新:次のようなもの:

var searchRooms;
var searchAdults;
var searchChildren;

$("#rooms").change(function () {
    searchRooms = $("#rooms").val();
});

$("#adults").change(function () {
    searchAdults = $("#adults").val();
});

$("#searchChildren").change(function () {
    searchChildren = $("#children").val();
});

$(#"btn").click(function(){
   // How you pass the data here will depend on what you are calling and what format it's expecting. It *might* look something like this...
   $.ajax({
      data: { "searchRooms" : searchRooms, "searchAdults" : searchAdults, "searchChildren": searchChildren },
      // all your other settings for this ajax call...
   });
});
于 2012-10-29T17:13:46.007 に答える