2013-01-11 5 views
5

Ich speichere mehrere ausgewählte Option Wert in das Textfeld und verketten mit Komma, aber nicht in der letzten der Zeichenfolge hinzufügen möchten. höre ist mein Code.Wie entferne ich das letzte Komma aus der Zeichenfolge mit jQuery

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
<select id="garden" name="garden" multiple="multiple"> 
    <option value="1">Flowers</option> 
    <option value="2">Shrubs</option> 
    <option value="3">Trees</option> 
    <option value="4">Bushes</option> 
    <option value="5">Grass</option> 
    <option value="6">Dirt</option> 
</select> 
<input type="text" name="store" id="store" /> 
<script> 
$("#garden").change(function() { 
    var str = ""; 
    $("select option:selected").each(function() { 
     str += $(this).val() + ","; 
     }); 
    $('#store').val(str).attr('rows',str.length) ; 
}) 
.trigger('change'); 
</script> 
</body> 
</html> 

Antwort

7

Sie könnten dies tun mit .substring():

$('#store').val(str.substring(0,str.length-1)).attr('rows',str.length-1) ; 
1

Verwenden .substring auf Ihre vollständigen Zeichenfolge

var str = ""; 
$("select option:selected").each(function() { 
    str += $(this).val() + ","; 
}); 
str = str.substring(0, str.length - 1); // remove the last char in your case the , 
$('#store').val(str).attr('rows',str.length) ; 
0

versuchen diesen Code ...

$('#store').val(str.substring(0,str.lastIndexOf(','))).attr('rows',str.length-1) ; 
0
$('#store').val(str.substr(0,str.length-1)).attr('rows',str.length-1) ; 
0

Verwenden .slice(start, end) auf diese Weise:

$('#store').val(str.slice(0,-1)).attr('rows',str.length); 

end in slice '-' von den letzten Punkt in der Zeichenfolge subtrahiert.

6

einfach verwenden,

in palce dieser

  $('#store').val(str).attr('rows',str.length) ; 

Verwendung

  str=str.slice(0,-1); 

Das ist genug, um das letzte Komma weglassen.

Verwandte Themen