2017-09-20 3 views
0

Ich habe einige checkboxes. Ich lade Daten aus der Datenbank ab, um sie in das Ankreuzfeld einzufügen, um zu bestimmen, welches zu prüfen ist, im Falle anderer muss ich die Werte in textbox schreiben.Wie Werte in Textfeld zu erhöhen

Beispiel: categories="Coconuts,Apple,Orange".

Also muss ich die Checkbox Coconuts & Andere überprüft werden, und „Apple, Orange“ im textbox sein.

Das Ergebnis, das ich in der textbox bekam, ist nur "Apple", kann mir jemand dabei helfen?

$.ajax({ 
    type:"POST", 
    url:"EditFarmerData.php", 
    dataType: 'json', 
    data:{'EditFarmerID': EditFarmerID}, 
    success: function (data) { 
    for (x in data.categories) { 
     switch(data.categories[x]) { 
     case'Cacao': 
      $("#EditFarmerForm input[type=checkbox][value=Cacao]").prop("checked",true); 
      break; 

     case'Coconuts': 
      $("#EditFarmerForm input[type=checkbox][value=Coconuts]").prop("checked",true); 
      break; 

     case'Bananas': 
      $("#EditFarmerForm input[type=checkbox][value=Bananas]").prop("checked",true); 
      break; 

     case'': 
      $('#EditFarmerForm input[type=checkbox]').prop('checked',false); 
      $("#Editotherproduct").val("") ; 
      break; 

     default: 
      $("#EditFarmerForm input[type=checkbox][value=Others]").prop("checked",true); 
      $("#Editotherproduct").val(data.categories[x]); 
      break; 
     } 
    } 
    } 
}); 

Antwort

1

so sein sollte, wäre einfacher Ansatz sein String-Verkettung von alten Wert in Textbox + neuen Wert zu verwenden, um in Textbox beigefügten

$.each(data.categories, function(key, value) { 
    switch(data.categories[x]) 
    { 
     case'Cacao': 
      $("#EditFarmerForm input[type=checkbox][value=Cacao]").prop("checked",true); 
     break; 

     case'Coconuts': 
      $("#EditFarmerForm input[type=checkbox][value=Coconuts]").prop("checked",true); 
     break; 

     case'Bananas': 
      $("#EditFarmerForm input[type=checkbox][value=Bananas]").prop("checked",true); 
     break; 

     case'': 
      $('#EditFarmerForm input[type=checkbox]').prop('checked',false); 
      $("#Editotherproduct").val("") ; 
     break; 

     default: 
      $("#EditFarmerForm input[type=checkbox][value=Others]").prop("checked",true); 
      var temp = $("#Editotherproduct").val(); 
      $("#Editotherproduct").val(temp+","+value); 
     break; 
    } 
}); 
3

Im default Fall, wenn Sie den Wert auf die eingestellte , es wird immer auf den letzten aktualisiert.

Um dies zu lösen, sollten Sie zuerst den aktuellen Wert erhalten:

var currentOtherProductValue = $("#Editotherproduct").val(); 

Dann fügen Sie [concate] mit vorhandenen Werten, können Sie es als Ihre Art und Weise tun,

hier ist einfache Lösung:

default: 
     $("#EditFarmerForm input[type=checkbox][value=Others]").prop("checked",true); 
     var currentOtherProductValue = $("#Editotherproduct").val()       
     $("#Editotherproduct").val(currentOtherProductValue+','+ data.categories[x]); 
     break; 
+0

Vielen Dank, aber ich habe kleines Problem, dass es immer „“ am Anfang der Textbox ist – NewDeveloper

+0

Sie überprüfen können, ob ‚currentOtherProductValue‘ einen gewissen Wert haben, dann den Wert hinzufügen, othe Stellen Sie einfach den Wert ein. für Beispiel: überprüfen Sie mit if ($. trim (currentOtherProductValue)) dann gehen Sie mit Komma, ansonsten nur Wert setzen –