简体   繁体   English

如何在下拉列表中选择给定选项

[英]How to select the given option in dropdown

I've a dropdown 我有一个下拉列表

<select id="ddl1">
    <option value="0">number</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
</select>

now what i'm doing is as soon as user clicks on ddl1 i change its default value to 4 like this 现在我正在做的是,只要用户点击ddl1我就会将其默认值更改为4

$(function () {

    var defaultValue = "4";

    $('#ddl1').click(function () {
        var select_val = $('#ddl1').val();

        if (select_val == "0")
            $('#ddl1').val(defaultValue);
    });
});

but now the problem is when user tries to select the default option of dropdown ie number , option 4 is selected. 但现在问题是当用户尝试选择下拉列表的默认选项即number ,选择选项4 Any ideas how to fix this? 任何想法如何解决这一问题?

The problem is when the user just clicks on dropdown -> option 4 must be selected and when user clicks on option number -> option number must be selected instead of option 4 . 问题是当用户只需点击下拉菜单时 - >必须选择选项4并且当用户点击选项number - >必须选择选项number而不是选项4

You should call this function on change , not click - else, like you said, as soon as you click an option is selected. 您应该在change调用此函数,而不是click - 否则,就像您所说,一旦您选择了单击选项。

$('#ddl1').change(function () {

DEMO DEMO

Edit: You should use a class to give the feel of the default option, you don't actually want it set to selected EACH time the user clicks: 编辑:你应该使用一个类给出默认选项的感觉,你实际上并不希望它设置为用户点击的每个时间:

<select id="ddl1">
    <option value="0">number</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4" class="default">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
</select>

.default {
    color: blue;
}

is this what you're looking for? 这就是你要找的? http://jsfiddle.net/swm53ran/84/ http://jsfiddle.net/swm53ran/84/

$(function () {
    var defaultValue = "4";
    var count = 0;
    $('#ddl1').click(function () {
        if (count < 1) {
            $('#ddl1').val(defaultValue);
            count++;
        }        
    });
});

Not sure why you're doing that but focusin or focus events can help you achieve that as follows: 不知道为什么你这样做但focusinfocus事件可以帮助你实现如下:

 $(function() { $('#ddl1').on('focusin', function() { this.value != 0 || $(this).val( 4 ); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <select id="ddl1"> <option value="0">number</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> </select> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM