2017-06-01 6 views
0

I Datatable jQuery-Plugin bin mit ein paar Daten in meiner app zeigen ...Set Checkbox Wert in Tables jQuery-Plugin

Ich habe diese Spaltendefinition:

columns: [ 
    { "data" : "appName" }, 
    { "data" : "uuid" }, 
    { 
    "data" : "Enabled", 
    'render': function(data, type, row) 
    { 
    console.log(data) 
    return '<input type="checkbox" checked = "' + data + '" >'; 
    } 
    } 

und coresponding Felder in Array von Objekte, die von jQuery übergeben wurden. console.log(data) gibt den richtigen Wert zurück, true von false für jeden Datensatz in der Tabelle, aber das Kontrollkästchen wird immer aktiviert.

Was mache ich hier falsch?

Antwort

2

return '<input type="checkbox" checked = "' + data + '" >';

Auf dieser Linie sind das Hinzufügen Sie das Attribut checked daher ist es immer geprüft:

return '<input type="checkbox"' + (data ? ' checked="checked"' : '') + '>';

(Beachten Sie, dass der Wert von checked nicht "checked" oder auch vorhanden sein muss , das Attribut ist das einzige, das vorhanden sein muss, aber es wird im Allgemeinen bevorzugt, einen aussagekräftigen Wert zu verwenden.)

Edit:

Wie Ihre Daten erscheint eine Zeichenfolge zu sein, anstatt ein boolean Sie benötigen, um Daten zu "true" vergleichen:

return '<input type="checkbox"' + (data == "true" ? ' checked="checked"' : '') + '>';

+0

Problem. ich habe immer entweder wahr oder falsch in "daten" ... so ist es immer zurück überprüft ... –

+1

hast du wahr oder falsch oder hast du eine string für sie? –