如何从所有选择框选项中获取课程?

时间:2014-06-18 11:57:32

标签: jquery

我正在尝试从当前所选选项中获取该类并插入到文本框中,但我只能获得第一个类:

JSFiddle:http://jsfiddle.net/2qAwh/

HTML

<select class="josearchselect" id="templates" name="text">
<option class="1">1</option>
<option class="2">2</option>
</select>

<input type="text" class="log_temp_id" />

JQquery

var Element= $(this).find('option:selected').attr('class');
    $("#templates").live("change", function() {
    $(".log_temp_id").val(Element);
    });

我听说在新的JQuery版本中不再使用live了,我不知道它是否真的,但我想替换这个事件。

感谢。

3 个答案:

答案 0 :(得分:2)

尝试在jquery版本&gt; = 1.7中使用.on()作为.live()的替代,

$(document).on("change","#templates", function () {
    $(".log_temp_id").val($(this).find('option:selected').attr('class'));
});

DEMO

答案 1 :(得分:1)

您需要在更改处理程序

中找到该类
$("#templates").live("change", function () {
    //you need to read the class attribute inside the change handler so that you will get the currently selected option
    var className = $(this).find('option:selected').attr('class');
    $(".log_temp_id").val(className);
});

演示:Fiddle

.live()方法为no longer supported,如果您希望对更改事件处理程序使用事件委派支持,请使用jQuery的.on()方法&gt; = 1.7

答案 2 :(得分:0)

你必须选择dropdwon的变更事件中的类,如下所示:

$("#templates").live("change", function() {
var Element= $(this).find('option:selected').attr('class');
        $(".log_temp_id").val(Element);
    });

在jQuery版本.live之后,1.7已弃用,并已从版本1.9中删除。更多信息请点击here

<强> Demo