2013-04-04 89 views
0

我在使用JQueryMobile設置列表視圖項目打開的對話框上設置文本框的值時遇到了麻煩。jquery-mobile:無法更改對話框中的輸入值

我可以更改該值,通過前後警報進行驗證,但顯示的值不會更改。

該概念是一個顯示購物清單項目的列表視圖。 如果用戶點擊其中一個項目,應該顯示一個對話框,其中包含一個用於編輯產品信息的表單。

我首先將href設置爲對話框頁面,然後綁定到onclick事件。 問題在於事件在頁面加載之前運行,所以沒有可用的項目。

接下來,我在「onclick」事件中打開了對話框programaticaly。

我可以更改該值,但不顯示更改。

相關片段如下。

在此先感謝您的幫助。

問候

若昂

<ul data-role="listview" data-inset="true" data-split-theme="b" data-split-icon="star" id="shopping_list_listview" style="margin-bottom:0px"> 
<li> 
    <a data-rel="dialog" data-transition="pop" href="#" onClick="loadData($(this))"> 
     <span class="product_name truncate" SAMPLE product</span> 
    </a> 
</li> 

function loadData(obj) 
     { 

      $.mobile.changePage('product_dialog.html','pop',false,true) 

      var name = obj.find("span.product_name").text(); 

      alert ($("#popup-product-name").val()); 

      $("#popup-product-name").val(name); 

      alert ($("#popup-product-name").val()); 

     } 

回答

2

做這種方式,這裏有一個例子。

Working Demo

標記

<!-- Page --> 
<div data-role="page" id="p1"> 
<p>Click on the text box to open dialog</p> 
<input type="text" id="two" /> <a data-role="button" href="#" id="btn">Move data to dialog</a> 
</div> 
<!-- /Page --> 

<!-- Dialog --> 
<div data-role="page" data-rel="dialog" id="dialog" data-theme="c" data-close-btn="right"> 
<div data-role="header" data-position="fixed" data-theme="b"> 
    <h1>New values added!</h1> 
</div> 

<ul data-role="listview" id="list"> 
    <li><a href="#">old value</a> 
    </li> 
    <li><a href="#">some value</a> 
    </li> 
    <li><a href="#">text</a> 
    </li> 
</ul> 
</div> 
<!-- /Dialog --> 

代碼

$(document).on('click', 'a#btn', function() { 
var value = $("#two").val(); 
$.mobile.changePage("#dialog", { 
    role: "dialog" 
}); 
$('#list').find('a').text(value); 
});