2012-07-26 66 views
0

我有一个下拉菜单,输入框下面的代码:取决于下拉选项更改标签

<select id="ci_binfo_affiliation_type" style="" onblur="updateptcname()" onchange="changecolor()" name="ci_binfo_affiliation_type" class="styled"> 
    <option <? if ($ci_binfo_affiliation_type == "") echo 'selected'; ?> value="">Select</option> 
    <option <? if ($ci_binfo_affiliation_type == "work") echo 'selected'; ?> value="work">work</option> 
    <option <? if ($ci_binfo_affiliation_type == "Other") echo 'selected'; ?> value="Other">Other</option> 
</select> 
<label class="formlbl" for="name_aftd">Name of (affiliation)</label> 
<div class="formbitem"> 
     <input id="ci_binfo_affiliation_name" type="text" onchange="updateptcname()" name="ci_binfo_affiliation_name" value="<?=$ci_binfo_affiliation_name?>" class="inputtext2" /> 
    </div> 

我希望发生的是:如果用户在下拉菜单中选择“学校”,然后在“(隶属关系)的名称”标签必须改变,因为学校的名称”。

谁能帮助我,我怎么能做到这一点...

+0

您需要在逻辑添加到的onchange()事件处理程序,目前changecolor() 。 – Egor 2012-07-26 19:56:07

+0

jQuery可以接受吗? – jeff 2012-07-26 19:59:02

+0

感谢快速rply,是的,这里我已经使用onchange改变颜色 – lucky 2012-07-26 19:59:43

回答

1

这是你在找什么?

$("#ci_binfo_affiliation_type").change(function() { 
    $("label[for='name_aftd']").text("Name of " + $(this).val()); 
}); 
2

请参阅此example on jsfiddle。它将函数绑定到select元素的更改事件。此功能会在label(ID:affiliation-placeholder)中获取新的span元素,并将其文本内容设置为所选option的值。

您可能需要清理其他事件侦听器(例如changecolor,在我的示例中抛出is not defined)。首选的方法是从您的JavaScript代码绑定侦听器,而不是在HTML中内联。

document.getElementById("ci_binfo_affiliation_type") 
    .addEventListener("change",function(){ 
     document.getElementById("affiliation-placeholder").textContent = this.value; 
}) 

使用jQuery 1.7(也与新span我加了,但很容易适应,如果必要的话):

$("#ci_binfo_affiliation_type").on("change", function(){ 
    $("#affiliation-placeholder").text($(this).val());  
}); 
+0

是的,它在小提琴中工作,但是当我使用这段代码时,它在脚本中显示错误 – lucky 2012-07-26 20:40:26

+0

错误是什么?你添加了“span#affiliation-placeholder”吗? – Wolfram 2012-07-26 21:53:02

相关问题