jQuery根据单击的锚点更改选择框值

时间:2011-11-07 14:42:34

标签: javascript jquery

当某人点击某个链接时,我需要更改选择框值

<a class="cli" href="0">Jan</a>
<a class="cli" href="1">Feb</a>
<a class="cli" href="2">Mar</a>
<a class="cli" href="3">Apr</a>
<a class="cli" href="4">May</a>
<a class="cli" href="5">Jun</a>
[...]
<a class="cli" href="11">Dec</a>

<select class="ui-datepicker-month">
<option value="0" style="display: none;">Jan</option>
<option value="1" style="display: none;">Feb</option>
[...]
<option value="9" style="display: none;">Oct</option>
<option selected="selected" value="10" style="display: none;">Nov</option>
<option value="11" style="display: none;">Dec</option>
</select>

到目前为止,这是我所拥有的,认为它很简单,只是无法绕过它:

$("a.cli").click(function(event){ //when anchor is clicked
            event.preventDefault();
            $(".ui-datepicker-month").val($(this).text());
        });  
    });

我也试过这个

$("a.cli").click(function(event){ //when anchor is clicked
        event.preventDefault();
        $(".ui-datepicker-month").val($(this).attr("href"));
    });  
});

仍然无效。

3 个答案:

答案 0 :(得分:3)

由于value属性保存在href属性,因此请使用:

$("a.cli").click(function(event){ //when anchor is clicked
    event.preventDefault();
    $(".ui-datepicker-month").val($(this).attr("href"));
});  

答案 1 :(得分:0)

为什么要更改值而不选择具有“点击”值的选项?

<a class="cli" href="0">Jan</a>
<a class="cli" href="1">Feb</a>
<a class="cli" href="2">Mar</a>


<select id="month" name="month" class="ui-datepicker-month">
<option value="0">Jan</option>
<option value="1">Feb</option>
<option value="2">Mar</option>
</select>

脚本:

jQuery('a.cli').click(function(event) {
    event.preventDefault();

    jQuery('#month option').attr('selected', false);
    jQuery('#month option[value="' + jQuery(this).attr('href') + '"]').attr('selected', true);
});

查看http://jsfiddle.net/jchiotaka/uaLXU/

答案 2 :(得分:0)

试试这个:

...
<a onClick="$('select.ui-datepicker-month').val('1');">Feb</a>
...


<select class="ui-datepicker-month">
...
<option value="1">Feb</option>
...
</select>