2014-01-15 88 views
1

請幫助我這樣做在我的手機使用與jQuery Mobile的JQuery的設置選擇框的值來選擇

var obj = jQuery.parseJSON(finalresult); 
//alert(obj); 
var dept = '2'; 
$(document).ready(function() { 
    //$("#opsContactId").empty(); 
    $.each(obj, function (k, v) { 
     var $opt = $("<option/>"); 
     $opt.attr("value", k); 
     //alert(k); 
     //alert(v); 
     //var value1=v; 
     if (k == dept) { 
      //$opt.attr("selected","selected"); 
      //alert("in if"); 
      $("#opsContactId").val(k); 
      //document.getElementById("opsContactId").value=k; 
      // $('#opsContactId').selectmenu('refresh', true); 
     } 
     $opt.text(v); 
     $opt.appendTo($("#opsContactId")); 
    }); 
}); 

不能設置一個選項,由dafault

+0

.prop(「selected」,true); –

+0

'#opsContactId'可能不存在 - 請參閱http://stackoverflow.com/questions/14468659/jquery-mobile-document-ready-vs-page-events – andyb

+0

@All:我無法得到輸出我試過所有以下和以上給出的方式...無法選擇所選的值..請幫助 –

回答

0

jsBin demo選擇

如果你有一個匹配,你需要添加所選的屬性。但我不知道你的物體是怎樣的...

var obj = {"1":"one","2":"two","3":"three","4":"four"}; // let's say that's how it looks 
var dept = '2'; 

$(function() { 

    var $sel = $("#opsContactId"); 
    $.each(obj, function (k, v) { 
    var $opt = $("<option/>", {value:k, text:v}).appendTo($sel); 
    if (k == dept) $opt.prop({selected:true}); 
    }); 

}); 
+0

@ RokoC.Buljan:我無法得到輸出我嘗試了以上和以上給出的所有方法...無法選擇所選值。 。請幫助 –

+0

@ user3185790好吧,讓我仔細看看你正在嘗試做什麼 –

+0

Folks,This is my entire code 角色: <選擇name = 「opsContactId」 ID = 「opsContactId」> –

0

會這樣的事情會不會更容易?

這樣的事情會不會更容易?

var selected = "selected"; // work this out 
var text = "Option Text"; // work this out 
var value = "Option Value"; // work this out 
$("#opsContactId").append('<option value="' + value + '" '+ selected + '>' + text + '</option>'); 
2

正如其他如指出,jQuery的.prop()將這裏作爲jQuery的文件最合適的答案提到自己:

「的.prop()方法應該是用來設置禁止,而不是檢查.attr()方法。應該使用.val()方法獲取和設置價值。「

要進一步您對您的例子是,jQuery允許法「鏈」的方法完成後返回jQuery對象,所以你可以後添加另一種方法直接

<select id="opsContactId"> 
</select> 

<script> 
$(document).ready(function() { 
    var tmp = [ 1, 2, 3, 4, 5 ], 
     dept = 2; 

    $.each(tmp, function(k, v) { 
     $("<option/>").attr("value", k) 
         .text("Value - " + v) 
         .appendTo($("#opsContactId")) 
         .prop('selected', (k == dept ? 'selected' : ''));   
    }); 
}); 
</script> 

小提琴http://jsfiddle.net/twdgC/


後來我忘了你提到你的問題,這會改變的問題一點點的動態的jQuery Mobile的方面。上面的代碼片斷運行後的頁面加載(因此,所有的jQuery Mobile的附件已經設置/製造),這會發生,給你的(下面

Empty Select Option

結果

小提琴http://jsfiddle.net/5ksG8/

這顯然是試圖構建一個<select>列表時沒有幫助,因此我們需要追加上述片段用:

$("#opsContactId").selectmenu('refresh', true); 

該段已運行之後,因此 '重載' 的完整列表,最後爲您提供(下面

After query

小提琴http://jsfiddle.net/YxVg6/

你在你的原始代碼片段中這樣做,問題是 - 你在循環內部執行它(它被註釋掉了!)。

+0

謝謝@MackieeE ..我已經解決了..我追查這是造成空的原因選擇.. –