我想制作一个脚本来解析下拉列表中所选选项的数量。 我尝试了我的代码到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;我想打印好吗?
答案 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(','));
答案 1 :(得分:1)
然后你可以这样做:
$(document).ready(function () {
var $val = $('select[id="#jform_params_foreignmanuf"] :selected').text();
$("#jform_params_manucounter").val($val);
});
由于您的select元素包含#
的特殊字符,因此您可以使用\\
将其转义,或者您可以像上面一样创建属性选择器。
为此,您只需使用.text()
代替.val()
。
答案 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 强>