首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery mobile -设置select/option值

jquery mobile -设置select/option值
EN

Stack Overflow用户
提问于 2011-08-15 09:28:02
回答 2查看 45.7K关注 0票数 20

我尝试使用jquery Mobile设置select/option值,但似乎无法正常工作。

代码语言:javascript
复制
<!-- Complete example below. -->

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="jquery.mobile/jquery.mobile.css" /> 
    <script type="text/javascript" src="jquery.mobile/jquery.js"></script>
    <script type="text/javascript" src="jquery.mobile/jquery.mobile.js"></script>
</head>
<body>

<div data-role="page" id="mainmenu">
    <div data-role="header" data-position="inline">
    <h1>Main Menu</h1>
    </div>
    <div class="ui-body ui-body-c">
    <div data-role="content">   
        <div id='placeholderA' ></div>  
        <div id='placeholderB' ></div>  
    <div class="ui-block-b"><button type="submit"  id="addPart" data-theme="a" data-icon="plus">Add Serial/Part</button></div>
    </div>
</body>
</html>         

<script>        

    var currentTab = "A";       

    // An XML fragment
    testXML =  "<?xml version='1.0' encoding='UTF-8' ?>\
    <Doc>\
        <DtlFields>\
            <ACTC>B</ACTC>\
            <QTY>5</QTY>\
        </DtlFields>\
        <DtlFields>\
            <ACTC>A</ACTC>\
            <QTY>6</QTY>\
        </DtlFields>\
    </Doc>";

    // An HTML fragment
    section = "<ul data-role='listview' data-theme='a'>\
            <li>PART: <span class='thisSection'></span>\
            <div data-role='fieldcontain'>\
                <label>A Label</label>\
                <select name='ACTC' id='preAction' data-theme='a'>\
                <option value='A'>A</option>\
                <option value='B'>B</option>\
                <option value='C'>C</option>\
                </select>\
            </div>\
            </li>\
            </ul>\
            <!-- ***   Quantity     *** -->\
            <div data-role='fieldcontain'>\
                <label>QTY</label>\
                <input type='range' name='QTY' id='preQuant01' value='1' min='1' max='10'/>\
            </div>\
        </div>";


$(document).ready(function () {

    /* Add a listeners to ADD PART */   
        $('#addPart').click(function() {                                
            var xml = $($.parseXML(testXML));           
            xml.find("DtlFields").each(function () {
                var XMLString= $(this);             
                fnAddPart(XMLString);                               
            });     
            return false;
        });   

    // add a part section to a Group on screen
    function fnAddPart(XMLString){
        myTmpl = $(section);                                                    

        if (XMLString != "" ){

            // set Quantity - this works
            var x =((XMLString).find("QTY").text());
            myTmpl.find("input[name='QTY']").attr('value', x);          

            // ************ set Activity - but this does not work! ***************
            var x =((XMLString).find("ACTC").text());           
            myTmpl.find("input[name='ACTC']").attr('value', x); 

        }       
        // append to page
        myTmpl.appendTo("#placeholder"+currentTab).page();                                                      
    }
});

</script>       
EN

回答 2

Stack Overflow用户

发布于 2011-08-15 14:53:28

在以编程方式操作jQuery移动设备中的select字段等元素时,一旦做出相关选择,就需要刷新该元素,以便更新用户界面。下面是一个示例代码片段,它在select字段中设置一个值,然后更新它:

代码语言:javascript
复制
// Grab a select field
var el = $('#YOUR_SELECT_FIELD');

// Select the relevant option, de-select any others
el.val('some value').attr('selected', true).siblings('option').removeAttr('selected');

// jQM refresh
el.selectmenu("refresh", true);

所以我想这是你需要的最后一句话了。

票数 67
EN

Stack Overflow用户

发布于 2012-10-25 03:59:22

在某些情况下,您可能需要包装您的函数以在document.ready上执行,并初始化选择菜单。以下是我使用Ben Poole的示例的解决方案:

代码语言:javascript
复制
$(document).ready(function(){
// Grab a select field
var el = $('#YOUR_SELECT_FIELD');

// Select the relevant option, de-select any others
el.val('some value').attr('selected', true).siblings('option').removeAttr('selected');

// Initialize the selectmenu
el.selectmenu();

// jQM refresh
el.selectmenu("refresh", true);
});
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7060955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档