0

在 jquery 中,三个下拉列表值通过 ajax 在按钮单击事件中作为参数传递,
但是我们存储的下拉值的值不能在更改函数中使用吗?

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

像这样我在按钮单击事件中需要三个变量(下拉值)
我有三个下拉列表。我使用上面的代码从一个下拉列表中选择了一个值。现在我需要从三个不同的下拉列表中选择三个值。所以如果我使用上面的代码从一个下拉列表中选择一个值,那么该值将存储在 searchRooms 变量中。现在我需要使用(传递)变量到控制器。如果我关闭更改功能,我将无法使用变量值。我对么?所以我需要在按钮单击事件中将三个下拉列表值传递给控制器

另一个问题,声明为全局变量。

  $(#"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 回答