Javascript 忽略select选项jQuery的值
这可能很简单,但我想知道如何忽略Javascript 忽略select选项jQuery的值,javascript,jquery,Javascript,Jquery,这可能很简单,但我想知道如何忽略选项选择的值,如果它等于某个值,例如我有这个选择 <select> <option value="">All</option> <option value=".Dog">Dog</option> <option value=".Cat">Cat</option> </select> $('select').on('change', function() {
选项选择的值,如果它等于某个值,例如我有这个选择
<select>
<option value="">All</option>
<option value=".Dog">Dog</option>
<option value=".Cat">Cat</option>
</select>
$('select').on('change', function() {
var animal_type = $('option:selected').text();
});
我想从ajax post中删除animal\u type
变量的原因是post的参数在rails中为我在服务器端进行SQL查询。在执行ajax之前,添加一个条件来检查所选选项的值
$('select').on('change', function() {
var animal_type = $('option:selected').text();
var data_send = {animal_type: animal_type, rehomed: false,};
if(animal_type != "All"){
data_send = {rehomed: false,};
}
$.ajax({
type: 'POST',
url: '/public/rehomed',
data: data_send,
});
});
在执行AJAX之前,添加一个条件来检查所选选项的值
$('select').on('change', function() {
var animal_type = $('option:selected').text();
var data_send = {animal_type: animal_type, rehomed: false,};
if(animal_type != "All"){
data_send = {rehomed: false,};
}
$.ajax({
type: 'POST',
url: '/public/rehomed',
data: data_send,
});
});
您可以这样做:
var animal_type = $('option:selected').text() == "All" ? null : $('option:selected').text();
<select>
<option value="-1">All</option>
<option value=".Dog">Dog</option>
<option value=".Cat">Cat</option>
</select>
或者您可以像这样修改html:
var animal_type = $('option:selected').text() == "All" ? null : $('option:selected').text();
<select>
<option value="-1">All</option>
<option value=".Dog">Dog</option>
<option value=".Cat">Cat</option>
</select>
您可以这样做:
var animal_type = $('option:selected').text() == "All" ? null : $('option:selected').text();
<select>
<option value="-1">All</option>
<option value=".Dog">Dog</option>
<option value=".Cat">Cat</option>
</select>
或者您可以像这样修改html:
var animal_type = $('option:selected').text() == "All" ? null : $('option:selected').text();
<select>
<option value="-1">All</option>
<option value=".Dog">Dog</option>
<option value=".Cat">Cat</option>
</select>
如果要避免在值为“”时发送动物类型:
注意您已经
$('select').on('change', function() {
var animal_type = $('option:selected').text();
});
因此,动物类型似乎有一个局部范围[在onchange函数之外无法访问]。如果要避免在值为“”时发送动物类型,请:
注意您已经
$('select').on('change', function() {
var animal_type = $('option:selected').text();
});
因此,动物类型似乎有一个局部范围[在onchange函数之外无法访问]。尝试以下操作:
$('select').on('change', function() {
var animal_type = $('option:selected').val();
var sending_data;
if(animal_type == '')
sending_data = {rehomed: false}
}
else
{
sending_data = {animal_type: animal_type, rehomed:false}
}
$.ajax({
type: 'POST',
url: '/public/rehomed',
data: sending_data,
});
});
试试这个:
$('select').on('change', function() {
var animal_type = $('option:selected').val();
var sending_data;
if(animal_type == '')
sending_data = {rehomed: false}
}
else
{
sending_data = {animal_type: animal_type, rehomed:false}
}
$.ajax({
type: 'POST',
url: '/public/rehomed',
data: sending_data,
});
});
难道你不能将animal\u type
设置为null
或0
然后在服务器端捕获它吗?我想你根本不想调用ajax?只需在$.ajax周围放置一个if…对不起,伙计们,我已经更新了我的问题,说明了我为什么要尝试这样做this@Richlewis为什么要传递文本而不是值?它会更好,例如:var animal\u type=this.value代码>因为我的值设置为.Dog(例如使用mixitup js过滤结果),所以文本取自my db中的值(基本上是提取所有唯一值)难道你不能将animal\u type
设置为null
或0
然后在服务器端捕获它吗?我想你根本不想调用ajax?只需在$.ajax周围放置一个if…对不起,伙计们,我已经更新了我的问题,说明了我为什么要尝试这样做this@Richlewis为什么要传递文本而不是值?它会更好,例如:var animal\u type=this.value代码>因为我的值设置为.Dog(例如使用mixitup js过滤结果),所以文本取自my db中的值(基本上是提取所有唯一值)