在jquery中,三个下拉列表值在按钮单击事件中通过ajax作为参数传递 但是我们存储的值下拉值不能用于改变函数吗?
$("#rooms").change(function () {
var searchRooms = $("#rooms").val();
});
像这样我在按钮点击事件中需要三个变量(下拉值)
我有三个下拉列表。我使用上面的代码从一个下拉列表中选择了一个值。现在我需要从三个不同的下拉列表中选择三个值。如果我使用上面的代码从一个下拉列表中选择一个值,那么该值将存储在searchRooms varaible.now中我需要使用(传递)变量到控制器。如果我关闭更改功能,则无法使用可变值。我对么?所以我需要将三个下拉列表值传递给按钮单击事件中的控制器
另一个问题,宣称为全局变量。
$(#"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没有值?
我怎样才能将该变量传递给控制器?
答案 0 :(得分: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...
});
});