在单击或更改事件时获取选定选项

时间:2011-11-28 13:46:11

标签: javascript jquery javascript-events

HTML

<form name='region_filter' action='/jobseek/search_cv/' method='get'>                              
  <select id="id_region" class="" name="region">
    <option value="" selected="selected">Все</option>
    <option value="3">Донецк</option>
    <option value="2">Киев</option>
    <option value="1">Харьков</option>
  </select>   
  <input class='submit' type='button' value='adgf'/>                 
</form>

JS

$(function(){
    $('.submit').click(function(){
    var selected = $('#id_region option:selected');
        console.log(selected);
        $.ajax({
            type: 'GET',
            url: '/jobseek/search_cv/',
            data: {'region': selected.val()},
            dataType: 'html',
            success: function(data){
                $('#category').html(data);
            },      
            error: function(textStatus, jqXHR){
                console.log('sdfg');
            }
        });
    });
});

每次点击触发按钮,我都会选择相同的选项,它会加载页面,而不是我在点击按钮之前选择的选项。如何获得实际选择的选项?

3 个答案:

答案 0 :(得分:2)

首先确保您只有一个ID为id_region的选择。

然后试试这个:

var selectedval = $("#id_region").val();

演示:http://jsfiddle.net/Dt8FR/

答案 1 :(得分:0)

尝试直接从select元素获取值并停止提交表单:

$('.submit').click(function(e){ 
    e.preventDefault();
    var val = $('#id_region').val(); 
    console.log(val); 
    $.ajax({ 
        type: 'GET', 
        url: '/jobseek/search_cv/', 
        data: {'region': val}, 
        dataType: 'html', 
        success: function(data){ 
            $('#category').html(data); 
        },       
        error: function(textStatus, jqXHR){ 
            console.log('sdfg'); 
        } 
    }); 
});

答案 2 :(得分:0)

问题是您不要更改所选项目。 您要求他转到所选项目的val,这是列表中的第一项。

此属性不会被删除并添加到当前拾取的项目中。 至少不会在jsfiddle上我快速复制粘贴它。

是否有您没有发布的代码或者这一切是什么?

添加了额外的代码示例:

$(document).ready(function () {

    $('#id_region').change(function(){
        var option = $(this).val();
        $('option:selected', 'select').removeAttr('selected');
    $('#id_region option[value=' + option +']').attr('selected', 'selected');
    });

    $('.submit').click(function(){
    alert($('#id_region option:selected').val());
    });
});

演示:http://jsfiddle.net/97PY6/