如何在发送AJAX请求之前捕获#select1和#select2值
How to catch #select1 and #select2 values before sent the AJAX request?
我有以下HTML代码:
<select id="select1">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<select id="select2">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<select id="select3">
<option value="0">Option 0</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<input type="text" id="select4">
我将它们变成Select2元素,我将INPUT更改为SELECT,然后更改为Select2,如下所示:
$(function() {
$('#select1').select2();
$('#select2').select2();
var field_value = $('#select2 :selected').val();
var module = $('#select1 :selected').val();
$('#select3').select2().on('select2:select', function(ev) {
var condition_type = $(this).val();
var select_el = '<select id="select4" style="width: 75%" multiple="multiple"></select>';
$('#select4').replaceWith(select_el);
$('#select4').select2({
placeholder: 'Start typing ...',
tags: true,
ajax: {
delay: 200,
url: '/someUrl',
minimumInputLength: 2,
data: function(params) {
var query = {
keyword: params.term,
condition: condition_type,
field: field_value,
table_name: module
}
return query;
},
processResults: function (data) {
return {
results: data
};
}
}
});
});
});
这是目前工作没有任何问题。一旦我发送AJAX调用的#select1, #select2
的值被发送作为一个请求参数,这是可以的,但如果我改变#select1, #select2
的值,并尝试相同的AJAX请求,以前的值被发送,而不是新的。
我已经尝试了以下操作,但不工作:
$('select#conditions').select2().on('select2:select', function (ev) {
var condition_type = $(this).val();
...
}).on('select2:selecting', function (ev) {
field_value = $('#select2 :selected').val();
module = $('#select1 :selected').val();
});
所以我的问题是我如何捕获新的值?任何帮助吗?我尝试在这里设置一个Fiddle示例,但我无法使其与AJAX调用一起工作。
直接移动
var field_value = $('#select2 :selected').val();
var module = $('#select1 :selected').val();
内 data: function(params) {
:
data: function(params) {
var field_value = $('#select2 :selected').val();
var module = $('#select1 :selected').val();
var query = {
keyword: params.term,
condition: condition_type,
field: field_value,
table_name: module
}
return query;
},
在这种情况下,您将始终检索并发送新的参数
相关文章:
- 阻止在select2单击时调用ajax
- Ajax模式下的Jquery Select2 V4在IE9中不起作用
- 将select2与jQuery虚拟键盘配合使用
- Select2-使用自定义模板时不显示占位符
- 在select2中手动触发ajax搜索
- IE-select2总是获得焦点
- select2:无法读取null的属性查询
- javascript绑定另一个select2输入字段rails的select2 inputonchange事件的数据
- Angular UI Select2指令搜索功能不起作用
- 使用javascript获取所选文本select2
- 当使用多个false时,Select2显示未定义
- Select2 4.0 - 创建后推送新条目
- select2 使用 AJAX 加载数据不能选择任何选项
- 如何使用 jquery 检查该值是否存在于带有标签的 select2 下拉列表中:true
- UI-Select2 绑定到对象而不是对象的属性
- 如何使用 select2 显示为文本框
- 将select2限制为最多6个选项
- 使用select2 3.5.2中的initSelection进行自定义筛选
- (X-Editable)与(Select2标签)不工作,可以't填充当前标签并跟踪添加/删除的标签
- 如何在发送AJAX请求之前捕获#select1和#select2值