使用jquery打印文本框内所选选项的计数和值

时间:2014-12-09 07:36:28

标签: javascript jquery

我想制作一个脚本来解析下拉列表中所选选项的数量。 我尝试了我的代码到jsfiddle,但它不起作用,即使我没有得到任何语法错误。我做错了什么?

$(document).ready(function(){
                var count=$("#jform_params_foreignmanuf:selected").length;
                 $("#jform_params_manucounter").val(count);
              });

http://jsfiddle.net/aewsduwo/22/

另外,如果我想创建一个文本区域并打印下拉选项的值?

$(document).ready(function(){
   var $val= $("#jform_params_foreignmanuf:selected").val;
    $("#jform_params_manucounter").val($val);
});

http://jsfiddle.net/pvpqd286/6/我认为这是我的例子中的第一个选项

<option selected="selected" value="127">1</option>

将输出&#34; 127&#34;而不是&#34; 1&#34;我想打印好吗?

3 个答案:

答案 0 :(得分:2)

一些事情:

1)你需要转义id标签中存在的特殊字符。

2)您需要按所选属性查找选项,而不是选择选定元素

 $("#\\#jform_params_foreignmanuf :selected").length

<强> Demo for selected option count

并将文本框中的选定元素值设为逗号分隔字符串:

 var count=$("#\\#jform_params_foreignmanuf").val().join(",");
 $("#jform_params_manucounter").val(count);

<强> Demo for selected value

更新:获取首个选定的选项文字:

 var firstselectedtext=$("#\\#jform_params_foreignmanuf :Selected:first").text();
 $("#jform_params_manucounter").val(firstselectedtext);

<强> Demo for first selected option text

获取所有选定的选项文本:

var selectedtext=$.map( $('#\\#jform_params_foreignmanuf :Selected'), function (element) { 
    return $(element).text() 
});
$("#jform_params_manucounter").val(selectedtext.join(','));

<强> Demo for getting all selected options text

答案 1 :(得分:1)

  1. 如果我想创建文本区域并打印下拉选项的值
  2. 然后你可以这样做:

    $(document).ready(function () {
        var $val = $('select[id="#jform_params_foreignmanuf"] :selected').text();
        $("#jform_params_manucounter").val($val);
    });
    

    由于您的select元素包含#的特殊字符,因此您可以使用\\将其转义,或者您可以像上面一样创建属性选择器。

    1. 会输出“127”而不是“1”我想要打印吗?
    2. 为此,您只需使用.text()代替.val()

      Checkout the demo.

答案 2 :(得分:0)

你可以尝试这个:

$("#jform_params_foreignmanuf").on('click', function(){
    var count = $("#jform_params_foreignmanuf option:selected").length; //count selected options
    $("#jform_params_manucounter").val(count);

    var val= [];
    $("#jform_params_foreignmanuf option:selected").each(function(){
        val.push($(this).text()); //save each selected text in array
    });
    $("#jform_params_manuvalue").text(val.join(',')); //write selected text to textarea (comma-seperated)
});

<强> Demo