2012-07-26 86 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