1

我的页面中有几个下拉列表来收集用户偏好。我需要从每个下拉列表中获取用户选择的值,然后将它们传递给本地 asp 程序以使用。我用过 :

$(document).ready(function() {

            $('#my_select').change(function() {

                // assign the value to a variable

                var selectVal = $('#my_select :selected').val();

                $(".test").html(selectVal);

            });
        });

这从一个下拉列表中获取值,但我似乎无法在我的页面中使用此值。到目前为止,我能找到的只是如何使用下拉菜单中的值。

4

8 回答 8

1
$(document).ready(function() {
         var selectVal;

            $('#my_select').change(function() {

                // assign the value to a variable

                selectVal = $('#my_select option:selected').val();

                $(".test").html(selectVal);

            });
        });
于 2013-10-29T09:27:06.663 回答
0

看起来您已经为多个选择框 (#my_select) 设置了一个 ID - 开始时不正确。如果您有多个选择,请分别为它们分配一个唯一 ID 或(更好)一个样式(如 .my_select)。然后你可以修改你的js如下:

        $('.my_select').change(function() {

            // assign the value to a variable

            var selectVal = $("option:selected", this);

            $(".test").html(selectVal);

        });
于 2013-10-29T09:26:54.787 回答
0

这是为您准备的演示JSFIDDLE。一探究竟

HTML:

<select name="select_box_1" id="select_box_1" class="sel_boxes">
<option value="select_box_1_value_1">select_box_1_value_1</option>
<option value="select_box_1_value_2">select_box_1_value_2</option>
</select>

<select name="select_box_2" id="select_box_2" class="sel_boxes">
<option value="select_box_2_value_1">select_box_2_value_1</option>
<option value="select_box_2_value_2">select_box_2_value_2</option>
</select>

<select name="select_box_3" id="select_box_3" class="sel_boxes">
<option value="select_box_3_value_1">select_box_3_value_1</option>
<option value="select_box_3_value_2">select_box_3_value_2</option>
</select>

JS:

$('.sel_boxes').change(function(){
    var param_string="";
    $('.sel_boxes').each(function(index) {
        var elem_name = $(this).attr('name');
        var elem_value = $(this).val();

        param_string = param_string+elem_name+"="+elem_value+"&";
    });
    param_string = param_string.substring(0, param_string.length - 1)
    alert(param_string)
});
于 2013-10-29T09:59:29.990 回答
0

使用此代码:

$('#my_select').change(function () {

    $(".test").html("");
    $('#my_select :selected').each(function (i, selected) {
        // assign the value to a variable
        var selectVal = $(this).val();
        $(".test").append(selectVal);
    });

});
于 2013-10-29T09:27:55.320 回答
0
 var g = {};
 $('select').change(function ()
 {
     var all = $('select').map(function (i, n)
     {
         return {
             'name': this.name,
             'val': this.value
         }
     }).get();
     var goingToServer = JSON.stringify(all); //do what ever...
     console.log(goingToServer);
 });

这是您发送到服务器的响应:

[{"name":"s1","val":"v1"},{"name":"s2","val":"v4"},{"name":"s3","val":"v6"}]

例子

于 2013-10-29T09:29:54.020 回答
0

像这样获取所有选定的值非常容易:

$('select').each(function(){
    console.log($(this).attr("name") = $(this).val());
});

我制作了一个 Fiddle 来显示这是一个动作,并构建了一串 key=value 对,我相信这是 OP 需要传递给他的 ASP 的:

var vals = [], str=null;    
$('select').change(function(){
    getVals();
});
$('button').click(function(){
    getVals();
    printVals();
});        
function getVals(){
    vals = [];
    $('select').each(function(){
        vals[$(this).attr("name")] = $(this).val();
    });
};
function printVals(){
    str="";
    for (var key in vals) {
        str += ((str)?"&":"") + key + "=" + vals[key];
    }
    alert(str);
}
于 2013-10-29T10:00:29.277 回答
0

为了在使用 :selected 选择元素时获得最佳性能,首先使用纯 CSS 选择器选择元素,然后使用 .filter(":selected")。

  $(document).ready(function() {

      var selectVal;  //Globalize the variable

      $('#my_select').change(function() { 

      selectVal = $('#my_select option').filter(":selected").val();

      $(".test").html(selectVal);

       });
  });
于 2013-10-29T09:37:28.440 回答
0

这很简单

html代码:

<select class="select_field" id="l_type" name="l_type">
    <option value=" ">Select type</option>
    <option value="cu">Cu</option>
    <option value="Ve">Ve</option>
    <option value="Ex">Ex</option>
</select>
<select class="select_field" id="l_type" name="l_type">
    <option value=" ">Select type</option>
    <option value="cu">Cu</option>
    <option value="Ve">Ve</option>
    <option value="Ex">Ex</option>
</select>
<select class="select_field" id="l_type" name="l_type">
    <option value=" ">Select type</option>
    <option value="cu">Cu</option>
    <option value="Ve">Ve</option>
    <option value="Ex">Ex</option>
</select>

<input type="button" value="GetVal"/>

Java脚本代码:

$(document).ready(function () {
    var selectVal = [];
    $('input:button').click(function () {
        $('select').each(function(i,e){            
            selectVal.push($('select:eq('+i+') option:selected').val());            
        });
        console.log(selectVal);
    });
});

最后是jsfiddle

于 2013-10-29T09:50:39.727 回答