2011-04-07 5 views
0

jQuery를 사용하여 선택 상자에서 선택한 텍스트를 어떻게 변경합니까?선택시 선택한 텍스트 변경

<select> 
    <optgroup label="Name"> 
     <option>John</option> 
     <option>Mike</option> 
    </optgroup> 
</select> 

즉, 당신이 존을 선택하면. 선택 상자에 "Name : John"이 표시됩니다. 대신, 그냥 "존".

$(document).ready(function() { 
    $('#name-select').change(function() { 
     var selectedItem = $('#name-select option:selected'); 
     var oldValue = selectedItem.text(); 
     var newValue = 'Name: ' + oldValue; 
     selectedItem.text(newValue); 
    }); 
}); 

당신은 그것을 생각 ID를 제공하기 위해 당신의 선택 옵션을 업데이트해야합니다 :

+0

<옵션 값을 = "존"> 이름 : 존을 달성하기 위해 그. – tiagoboldt

+0

@tiagobolt -하지만 OP는 옵션이 선택되면 메뉴 옵션이 변경되기를 원합니다. –

+0

하지만 "Name : John"이라고 말하는 옵션이 표시됩니까? 나는 그들이 John을 선택할 때 그것을 표시하기를 원합니다. – rgin

답변

1

HTML :

<select id="myselect"> 
    <optgroup label="Name"> 
     <option>John</option> 
     <option>Mike</option> 
    </optgroup> 
</select> 

JS :

$("#myselect").change(function (event) { 
    var o = $("#myselect option:selected") 
    , v=o.text() 
    , old = $("#myselect option:contains('name')") 
    , oldv = old.html(); 

    oldv && old.html(oldv.replace('name: ','')); 
    o.text('name: ' + v); 
}); 

참조 : 당신은 같은 것을 할 수 http://jsfiddle.net/eQR2W/2/

+0

@herostwist 이것이 전혀 작동하지 않았습니다. – rgin

+0

죄송합니다. '#'을 (를) 놓치 셨습니다. 지금 시도해보십시오. – herostwist

+0

아, 그걸 좀 더 가까이에서 살펴 보았어야합니다. 이것은 내가 원하는 것에 더 가깝다. 드롭 다운을 클릭하면 "name : John"이 옵션으로 표시됩니다. 지금 대답하도록 전환하십시오. – rgin

2

이 시도

<select id="name-select"> 
    <optgroup label="Name"> 
     <option>John</option> 
     <option>Mike</option> 
    </optgroup> 
</select> 

을 그리고 여기 jsFiddle 데모입니다 : http://jsfiddle.net/benmajor/2m76z/

+0

실용적인 응용 프로그램에서 옵션을 더 이상 선택하지 않으면 '이름 :'을 제거하도록 업데이트하고 싶을 것입니다. –

+0

예, 이것으로 작업 할 수 있습니다. @Oren이 말한 것처럼 다시 변경하는 방법을 찾아야합니다. – rgin

1

추가하면 이 속성을 사용하면 값 속성을 추가해야합니다. 그렇지 않으면 누군가가 값을 선택한 다음 값을 잃어 버릴 수 있습니다. 다른 값을 선택).

$("select").change(function() { 
    var label = $("select option:selected").parent().attr("label"); 
    var val = $("select option:selected").attr("value"); 
    $("select option:selected").html(label+":"+val); 
}); 
+0

hmm .. var oldList = $ ("select")와 같은 것을 할 수 있습니다. html()? 음 ... 아이디어를 주셔서 감사합니다. – rgin

관련 문제