2017-03-06 2 views
0

Ist es möglich, Checkbox, um zu überprüfen, basierend auf data-id und data-tipe und data-group jQuery auf meinem Fall mit unter:jQuery Set Checkbox basierend auf 3 Bedingungen Daten überprüft werden

Aktualisiert Frage

success: function (jsonStr) 
{ 
    var len = jsonStr.length; 
    for(var i=0; i<len; i++) 
    { 
     var moduleID = jsonStr[i].moduleID; 
     var moduleName = jsonStr[i].moduleName; 
     var projectName = jsonStr[i].projectName; 
     var groupID = jsonStr[i].groupID; 
     var chk = jsonStr[i].chk; 
     var chkModule = jsonStr[i].chkModule; 
     var group = jsonStr[i].group; 

     var tr_str = "<tr id='"+jsonStr[i].moduleID+"'>" + 
      "<td>" + projectName + "</td>" + 
      "<td>" + moduleName + "<input type='text' name='chkTipeInput[]' class='chkTipeInput"+jsonStr[i].moduleID+"'/></td>" + 
      "<td align='center'><input type='checkbox' data-id='"+jsonStr[i].moduleID+"' data-group='"+jsonStr[i].groupID+"' data-tipe='CREATE' value='CREATE'/></td>" + 
      "<td align='center'><input type='checkbox' data-id='"+jsonStr[i].moduleID+"' data-group='"+jsonStr[i].groupID+"' data-tipe='EDIT' value='EDIT'/></td>" + 
      "<td align='center'><input type='checkbox' data-id='"+jsonStr[i].moduleID+"' data-group='"+jsonStr[i].groupID+"' data-tipe='VIEW' value='VIEW'/></td>" + 
      "<td align='center'><input type='checkbox' data-id='"+jsonStr[i].moduleID+"' data-group='"+jsonStr[i].groupID+"' data-tipe='DELETE' value='DELETE'/></td>" + 
      "</tr>"; 

      $('.dataShow2').show(); 
      $("#tData tbody").append(tr_str); 
    } 

    $(":checkbox").each(function() { 
     $(this).prop("checked", $(this).attr("data-id") == chkModule && $(this).attr("data-tipe") == chk && $(this).attr("data-group") == group) 
    }) 
}) 

Array für:

chk  = CREATE,EDIT, EDIT, VIEW 
chkModule = MD0003,MD0003,MD0002,MD0002 
group  = GR0001,GR0001,GR0001,GR0001 

bedeutet, wenn:

if data-id="1" and data-tipe="create" and data-group="a" then check the checkbox 

Antwort

1

//$(":checkbox").each(function() { 
 

 
//$(this).prop("checked", $(this).attr("data-id") == 1 && $(this).attr("data-tipe") == "create" && $(this).attr("data-group") == "a") 
 
//}) 
 

 
//var data = [1,"create","a"]//array of values 
 

 
var chk = ["CREATE", "VIEW", "EDIT", "DELETE"] 
 
var chkModule = ["MD0003", "MD0002", "MD0003", "MD0002"] 
 
var group = ["GR0001", "GR0001", "GR0001", "GR0001"] 
 

 

 
for (var i = 0; i < 4; i++) { 
 
    console.log(chk[i] + " " + chkModule[i] + " " + group[i]) 
 
    $(":checkbox[data-tipe=" + chk[i] + "][data-id=" + chkModule[i] + "][data-group=" + group[i] + "]").prop("checked",true) 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <th>Nama</th> 
 
    <th>Create</th> 
 
    <th>Read</th> 
 
    <th>Update</th> 
 
    <th>Delete</th> 
 
    </tr> 
 
    <tr> 
 
    <td>coba</td> 
 
    <td><input type="checkbox" data-id="MD0003" data-tipe="CREATE" data-group="GR0001"></td> 
 
    <td><input type="checkbox" data-id="MD0002" data-tipe="VIEW" data-group="GR0001"></td> 
 
    <td><input type="checkbox" data-id="MD0003" data-tipe="EDIT" data-group="GR0001"></td> 
 
    <td><input type="checkbox" data-id="MD0002" data-tipe="DELETE" data-group="GR0001"></td> 
 
    </tr> 
 
    <tr> 
 
    <td>coba 2</td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="create" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="read" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="update" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="delete" data-group="a"></td> 
 
    </tr> 
 
    <tr> 
 
    <td><input type="button" id="btnUpdate" value="Update" /> 
 
    </tr> 
 
</table>

den Zustand verwenden, wenn wahr ist, dann == prop überprüfen

+0

Hallo Guradio, wie wäre es, wenn der Wert von Daten-ID, Daten-Tip und Datengruppe Array ist? Wie macht man? –

+0

@HiDayurieDave Datenattribut mit Array-Wert? – guradio

+0

Ja, alle 3 Daten stammen aus dem Array –

1

Sie Attribut und seinen Wert in Selektor angeben, und prop dann Wert für die Einstellung Eigenschaft:

$("input[data-id='1'][data-tipe='create'][data-group='a']").prop("checked", true); 

Demo:

$("input[data-id='1'][data-tipe='create'][data-group='a']").prop("checked", true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <th>Nama</th> 
 
    <th>Create</th> 
 
    <th>Read</th> 
 
    <th>Update</th> 
 
    <th>Delete</th> 
 
    </tr> 
 
    <tr> 
 
    <td>coba</td> 
 
    <td><input type="checkbox" data-id="1" data-tipe="create" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="1" data-tipe="read" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="1" data-tipe="update" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="1" data-tipe="delete" data-group="a"></td> 
 
    </tr> 
 
    <tr> 
 
    <td>coba 2</td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="create" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="read" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="update" data-group="a"></td> 
 
    <td><input type="checkbox" data-id="2" data-tipe="delete" data-group="a"></td> 
 
    </tr> 
 
    <tr> 
 
    <td><input type="button" id="btnUpdate" value="Update" /> 
 
    </tr> 
 
</table>

+0

Hallo Yeldar, wie wäre es, wenn der Wert der Daten-ID, Daten tipe verwenden und Datengruppe ist Array? Wie macht man? –

+0

@HiDayurieDave Hallo. Wie kann der Wert eines Attributs ein Array sein? :) –

+0

Eigentlich ist das Kontrollkästchen auf Schleife, frage: Muss ich in dieser Frage hier noch einmal eine neue Frage stellen? –

2

Sie können einen Filter

$('input[type=“checkbox”]').filter(function() { 
return $(this).data("id") == "1" && $(this).data("tipe") == "create" && $(this).data("group") == "a"); 
}).prop("checked",true); 
+0

Hallo Mark, wie wäre es, wenn der Wert von Daten-ID, Daten-Tip und Datengruppe Array ist? Wie macht man? –

+0

Ich verstehe Ihre Frage nicht im Kontext, der Filter sieht alle Eingabe-Checkboxen an und prüft das Kästchen, ob die Datenwerte in diesem Fall wahr sind. - Wenn Sie den Wert im Vergleich zu TO meinen, dann referenzieren Sie einfach das Array-Element für jeden anstelle des fest codierten Wertes wie "1" verwenden Sie 'myarray [0]' –

Verwandte Themen