2012-07-12 56 views
3

我有一个选择框和一个带有跨度的标签,我想在用户在下拉框中更改其选择时替换跨度内容。如何更改基于下拉选择的跨度内容

<select class="text_select" id="field_6" name="field_6">  
<option value="- Select -">- Select -</option> 
<option value="Option One">Option One</option> 
<option value="Option Two">Option Two</option> 
<option value="Option Three">Option Three</option> 
</select> 

<label class="form_field">Your selected <span id="aggregator_name"></span>?</label> 

我使用这个脚本

<script type="text/javascript"> 
function notEmpty(){ 

var e = document.getElementById("field_6"); 
var strUser = e.options[e.selectedIndex].value; 
document.getElementById('aggregator_name').innerHTML = strUser; 

} 
notEmpty() 
</script> 

问题的,这是,每当我刷新页面,跨度为替换为“ - 选择 - ”但是当我改变下拉到另一种选择,它不会更改跨度的内容? 请帮帮忙。

回答

4

您需要从下拉菜单中更改事件中调用函数:

document.getElementById("field_6").onchange = notEmpty; 

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

或者,因为你使用了“jQuery的”标签,以下内容替换所有的JS:

$(document).ready(function() { 
    $("#field_6").change(function() { 
     $('#aggregator_name').html($(this).val()); 
    }).change(); 
}); 

演示:http://jsfiddle.net/Mj4Vj/1/

(注意:如果上述内容包含在出现在“field_6”元素后面的脚本块中,例如,如果脚本位于主体的末尾,则不需要将代码包装到文档就绪处理程序中。)

+0

谢谢队友。这里更新:http://jsfiddle.net/GEfwE/2/ – user1074803 2012-07-12 02:08:50

+0

不客气。但我不明白你的更新与我的回答有何关系? (注意,当你有一个id时,选择器“#field_6”比“select#field_6”更好 - 当id唯一时,不需要指定标记名。) – nnnnnn 2012-07-12 02:12:33

2

工作演示http://jsfiddle.net/GEfwE/1/

行为:当过,你会改变什么,你会看到cahnge跨度,

希望这会有所帮助,请让我再知道如果我错过了什么! `:)〜

代码

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

    $('#aggregator_name').html($(this).val()); 
}); 
​ 
+0

谢谢你们。更新与选择ID http://jsfiddle.net/GEfwE/2/ – user1074803 2012-07-12 02:08:33

+0

@ user1074803不用担心':)'很高兴帮助! – 2012-07-12 02:10:06

1

可以使用平变化。

var e = document.getElementById("field_6"); 
e.onchange = function() { 
    var strUser = e.options[e.selectedIndex].value; 
    document.getElementById('aggregator_name').innerHTML = strUser; 
}