2016-12-22 2 views
2

Wenn ich Combobox Rendering wie dieseEinstellung ausgewählter Wert innerhalb Combobox mit seinem Namen nicht Index

$('#MyCombo').html('<option value=""></option>'); 
    $.each(mydata, function (i, v) { 
     $('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>'); 
    }); 

wie kann ich Wert innerhalb Combobox ausgewählt gesetzt, wenn v.PersonName == 'John'

P. S. Ich weiß, dass ich es den Wert mit Index

$('#MyCombo').prop('selectedIndex', 2); 

aber in diesem Fall einstellen kann, weiß ich nicht den Index, ich kenne nur den Namen.

+1

'$ ('Option [value = John]'). Prop ('ausgewählt')' – guradio

+0

@ user1765862 Die folgende Lösung wird Ihnen helfen, –

+0

bitte Lösung als Antwort zu maskieren, so dass es anderen helfen kann –

Antwort

0

Eine einfache Antwort

$('#MyCombo').html('<option value=""></option>'); 
    $.each(mydata, function (i, v) { 
     if (v.PersonName== 'John') 
      $('#MyCombo').append('<option selected value="' + v.PersonId+ '">' + v.PersonName + '</option>'); 
     else 
      $('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>'); 
    }); 
0

Sie können es tun, wie diese

$('#MyCombo').html('<option value=""></option>'); 
$.each(mydata, function (i, v) 
{ 
    if(v.PersonName == 'John') 
    { 
     $('#MyCombo').append('<option value="' + v.PersonId + '"selected>' + v.PersonName + '</option>'); 
    } 
    else 
    { 
     $('#MyCombo').append('<option value="' + v.PersonId + '">' + v.PersonName + '</option>'); 
    } 
};   
2

bereits.

$('#MyCombo').html('<option value=""></option>'); 
$.each(mydata, function (i, v) { 
    $('#MyCombo').append('<option value="' + v.PersonId + '" '+ 
         (v.PersonName == 'John ')? 'selected ' : '' +'>' + 
         v.PersonName + '</option>'); 
}); 
1

Sie können die jQuery.prop() Funktion verwenden. Ich mag das mehr, als zweimal das komplette HTML zu schreiben.

Example on jsFiddle

var options = [ 
    { value: 'foo', label: 'Lorem' }, 
    { value: 'bar', label: 'Ipsum' }, 
    { value: 'juice', label: 'Orange' } 
]; 

$.each(options, function() { 
    var option = $('<option/>') 
     .text(this.label) 
     .val(this.value); 

    if (this.value == 'bar') { 
     option.prop('selected', 'selected'); 
    } 

    option.appendTo($('select')); 
}); 
2

Sie können ganz einfach tun dies als

$('#MyCombo').html('<option value=""></option>'); 
    $.each(mydata, function (i, v) { 
     $('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>'); 
    }); 
$('#MyCombo').value = "Jhon'sId"; 
1
$('#MyCombo option').filter(function() { 
    return $(this).html() == "John"; 
}).prop('selected', true); 
Verwandte Themen