2014-01-15 87 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 ..我已经解决了..我追查这是造成空的原因选择.. –