2016-08-05 35 views
1

Ich habe ein Optionsfeld-Gruppe wie folgt aus:jquery mobile Set ausgewählt Wert eines Optionsfeldgruppe

<div data-role="fieldcontainer"> 
      <fieldset data-role="controlgroup" data-type="horizontal" name="optRestriction" id="optRestriction"> 
       <legend>Restriction</legend> 
       <input type="radio" name="chkRestriction" id="chkRed" value="R" class="custom" /> 
       <label for="chkRed">Red</label> 
       <input type="radio" name="chkRestriction" id="chkYello" value="Y" class="custom" /> 
       <label for="chkYello">Yellow</label> 
       <input type="radio" name="chkRestriction" id="chkGreen" value="G" class="custom" /> 
       <label for="chkGreen"> 

Ich versuche, den ausgewählten Wert nach Werte einzustellen vom dienen API abgerufen werden.

Ich habe wie unten verschiedene Weise versucht:

$("input[name=chkRestriction][value=" + data.rows[0].restrictionCd + "]").prop('checked', true).trigger('change'); 

           $("input[type='radio']:eq(" + data.rows[0].restrictionCd + ")").attr("checked", "checked"); 
           $("input[type='radio']").checkboxradio("refresh"); 

           $("input[name=chkRestriction][value=" + data.rows[0].restrictionCd + "]").prop('checked', true).trigger('change'); 
           $('[name="chkRestriction"]').val([ data.rows[0].restrictionCd ]); 

Aber keiner scheint zu funktionieren. Eine Demo fiddle is here

Schätzen Sie alle Vorschläge im Voraus.

Antwort

2

Setzen Sie das Attribut "checked" und rufen Sie Refresh auf.

$('input:radio[name="chkRestriction"]').filter('[value="R"]').attr("checked",true).checkboxradio("refresh"); 

Jsfiddle - https://jsfiddle.net/of7uvbwh/3/

+0

es Rückgabe Fehler: * jquery-1.11.1.min.js: 2 Uncaught Fehler: Methoden können nicht aufgerufen werden checkboxradio vor der Initialisierung; versucht, die Methode 'refresh' aufzurufen –

0

Set/ungesetzt der Wert jedes Optionsfeld in einer Schleife wie diese dies:

var valToSet = myVal; // myVal is value to set from API 

$('#optRestiction input').each(function(){ 
    var $this = $(this) 
    if($this.val() == valToSet) { 
    $this.prop('checked', true); 
    } 
    else { 
    $this.prop('checked', false); 
    } 
}); 

Die ‚geändert‘ Ereignis wird ausgelöst, wenn einer Ihrer Eingaben Zustand ändert. Durch das Auslösen wird nichts erreicht, es sei denn, Sie haben einen Handler für das Ereignis "changed" für diese Eingabe definiert.

+0

Dies scheint nicht zu funktionieren, aktualisierte Geige mit Ihren vorgeschlagenen Änderungen https://jsfiddle.net/of7uvbwh/ – w2olves

0

Versuchen Sie dies.

$ ('input: radio [name = "chkRestriction"]'). Filter ('[wert = "R"]'). Attr ("aktiviert", true) .checkboxradio(). Checkboxradio ("refresh ");