2012-08-08 4 views
0

jquery mobile에서 제품에 대한 별도의 페이지를 만들었습니다. 전화 갭을 가진 쿼리 Local Sq-Lite 데이터베이스에서 동적으로로드됩니다. 아래의 코딩은 잘 작동하고 체크 박스가있는 제품 목록을 보여줍니다. 그러나 하나의 확인란을 클릭하면 모든 확인란이 선택됩니다. 또한 일부 기본 확인란이 화면에 표시됩니다. 이 체크 박스 목록을 올바르게 표시하고 제출시 체크 박스 값을 가져 오는 방법은 무엇입니까?단일 체크 상자 클릭은 Jquery 모바일에서 모든 확인란을 선택합니다.

$('#productspage').live('pageinit',function(event){ 
    loadProducts(); 
}); 

// Load Products for Products page 
function loadProducts() 
{ 
    var db=window.openDatabase("salesorder", "1.0", "SalesOrder", 1048576); 
    if(db!=null) 
    { 
     db.transaction(queryProductsTable, errorPT); 
    } 
    else 
    { 
     alert("table not exists"); 
    } 
} 


function queryProductsTable(tx) 
{ 
    tx.executeSql('SELECT * FROM products', [], queryProductsSuccess, errorPT); 
} 

function errorPT(err) { 
    alert("Error processing SQL: "+err.code); 
} 

//Query products and append to products_list 
function queryProductsSuccess(tx, results) { 
    var len = results.rows.length; 
    $("#products_list").empty(); 
    for (var i=0; i<len; i++){ 
      var product_id=results.rows.item(i).productid; // Returns null 
      var product_name=results.rows.item(i).productname; 
      var product_price=results.rows.item(i).unit_price; 
      var product_stock=results.rows.item(i).qtyinstock; 
      $("#products_list").append("<input type='checkbox' name='products_check' id='"+product_id+"' value='"+product_name+"' price='"+product_price+"' stock='"+product_stock+"' class='custom'><label for='"+product_id+"'>"+product_name+"</label>"); 
     } 
     $("#products_list").trigger("create"); 
} 

답변

1

모든 체크 박스에 동일한 이름을 지정했습니다. 고유 한 이름을 얻을 수 있도록 행 번호를 이름에 추가하십시오.

+0

각 확인란마다 고유 ID가 수정되었지만 작동하지 않습니다. 원하지 않는 네이티브 확인란이 화면에 표시되었습니다. 모든 확인란의 작동 방식은이 네이티브 확인란에 따라 다릅니다. – Ramprasad

+0

이 문제를 해결했습니다 ... queryProductsSuccess (tx, results) 함수 제품 ID 반환 "null"있음. 따라서이 확인란은 제대로 렌더링되지 않으며 선택할 수도 없습니다. 제품 ID 문제를 변경 한 후에도 문제가 없습니다. – Ramprasad

관련 문제