JQM从表单选项中获取值

时间:2013-04-16 01:58:42

标签: jquery css jquery-mobile jquery-mobile-select

我有一些基本的HTML即

    <select id="list1">
        <option value="1">Item1</option>
        <option value="2" selected="selected" >Item2</option>
    </select>
    <select id="list2">
        <option value="3">Item3</option>
        <option value="4">Item4</option>
    </select>

默认情况下,我将#list2隐藏起来并在将#List1更改为选项值2时显示...

    $('#list2').hide();

    $('#list1').on('change', function () {
     if ($(this).val() == '2') {
      $('#list2').parent('div').hide();
     } else {
       $('#list2').parent('div').show();
    }
    });

我想知道的是,如果页面加载时动态SELECTED值为“2”,我该如何显示列表2。即不是在事件之后,而是在事件之前。

提前感谢您的任何帮助/建议。 我想知道的是,我怎么能

3 个答案:

答案 0 :(得分:1)

您可以在页面加载上触发更改事件

$("#list1").trigger("change");

答案 1 :(得分:1)

工作示例:http://jsfiddle.net/Gajotres/uX3NL/

很少有人注意到,data-role =“none”被添加到第二个选择中。即使display设置为none,它也会阻止jQuery mobile显示它。这就是我删除该属性的原因,然后显示选择并使用函数 selectmenu 重新设置它。

Javascript:

$(document).on('pagebeforeshow', '#index', function(){       
    if($('#list1').find(":selected").val() == 2) {
        $('#list2').removeAttr('data-role').show().selectmenu();
    }
});

CSS:

#list2 {
    display: none;
}

HTML:

    <div data-role="page" id="index">
        <div data-theme="a" data-role="header">
            <h3>
                First Page
            </h3>
            <a href="#second" class="ui-btn-right">Next</a>
        </div>

        <div data-role="content">
            <select id="list1">
                <option value="1">Item1</option>
                <option value="2" selected="selected">Item2</option>
            </select>
            <select id="list2" data-role="none">
                <option value="3">Item3</option>
                <option value="4">Item4</option>
            </select>
        </div>

        <div data-theme="a" data-role="footer" data-position="fixed">

        </div>
    </div>  

答案 2 :(得分:0)

我使用以下方法让它发挥作用。         $( '#列表2')隐藏();

    var selVal = $("#vlist1 :selected").val() ;

     if (selVal == 2) {

     $('#list2').show();