2011-01-29 2 views
0
  1. Suposse user hits SPACE в текстовом поле. Я хочу проверить значение в select -box. Я использую input.addEventListener('keydown', function(e)... для отслеживания SPACE-точки, но как я могу получить значение блока выбора <select id='topic'><option value="hello"></option> ...</section>?Как вывести выделенное значение в JavaScript?

  2. Как вы можете вывести значение выбранного индекса? Не могу понять, почему не ниже.

    var el = document.getElementById("topic"); 
        var topicValue = el.options[el.selectedIndex].value; 
    
        // PROBLEM: Won't do anything (despite inside <script> -tags) 
        window.alert(topicValue); 
    

topic, где есть выбор <select id="topic"[^>]*>[^<]*</select>.

+0

вы хотите в 'change' событие. – drudge

+0

Почему вы продолжаете говорить «stdout»? На стороне клиента, JavaScript действительно имеет только один способ. – vol7ron

+0

vol7ron: Возможно, я глуп. Извините, но не заботится о defs, слишком долго ударил головой в эту тему, googling возвращает такие предложения, как 'el.options [el.selectedIndex] .value;' но это разумное питание, когда они не работают. Пытаюсь решить эту проблему ... – hhh

ответ

0

события работают в избранных, а не вариантов, но только условно к скрипту.

<html> 
<body> 

<script> 
     function alertMe(option){ 
       if(option == "saab"){ 
         window.alert("you clicked saab in selec!"); 
         document.getElementById("txt").value='saab!'; 
       } 
     } 
</script> 


<select onChange="alertMe(this.value);"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="m"> Mercedes</option> 
    <option>Audi</option> 
</select> 

<input type="text" id="txt" value="change me"></input> 

</body> 
</html> 

[Ответы на обновленный]

  1. Вы можете получить доступ к выбрать с document.getElementById('topic').options.selectedIndex или mySelect.options[selectedIndex].value (не работает со мной). И, видимо, вы могли бы создать форму, к которой вы могли бы обратиться document.forms['topic'].elements[id], но не уверены в этом. More.
  2. @ Kosh, что раздражает! Просто сделайте dictionary = {0:"topic", 1:"hello",...,n:"topic_{n}"}, а затем используйте getElementById('topic').selectedId в качестве ключа и забудьте значения. Не разрешено, а округлено.

[Update] Я думаю, что я решил это, просто el.value, не selectedIndex необходимое:

<html> 
<body> 

<script> 

function printSelectValue() 
{ 
     var el = document.getElementById("selectOne"); 
     alert(el.value); 

} 
</script> 


<select id="selectOne" onChange="printSelectValue()"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="m"> Mercedes</option> 
</select> 

</body> 
</html> 
0

Есть много событий, на которые вы можете посмотреть.

Это список всех их http://www.w3schools.com/tags/tag_select.asp

OnKeyDown и OnMouseDown предупредит вас до OnChange (пользователь, нажав ввод) событие