calebo
calebo

Reputation: 3442

Change select option value base on element click

How can I update the value within the element if I click on any of the list items? Also, any tips on optimizing the js?

<select name="region" id="region">
    <option value=""></option>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
</select>

<ul id="states">
    <li class="a">a</li>
    <li class="b">b</li>
    <li class="c">c</li>
</ul>

<script>
$('#region').change(function(){
    $('.stores').fadeOut();
    $('#' + $(this).val()).delay(300).fadeIn();
});    
$('#states > li').click(function(){
    $('.stores').fadeOut();
    $('#' + $(this).attr('class')).delay(300).fadeIn();
});   
</script>

<p id="a" class="stores">a</p>
<p id="b" class="stores">b</p>
<p id="c" class="stores">c</p>

Upvotes: 1

Views: 1148

Answers (1)

Sotiris
Sotiris

Reputation: 40096

use the following:

$("#states > li").click(function() {
   $("option").removeAttr("selected");
   var value = $(this).attr('class');
    $("option[value='"+value+"']").attr("selected","selected");
});

Demo: http://jsfiddle.net/ZyVTH/1/

Upvotes: 2

Related Questions