2013-01-11 15 views
5

Przechowuję wiele wybranych wartości opcji do pola tekstowego i łączę się przecinkami, ale nie chcę dodawać ostatniego ciągu znaków. usłyszeć to mój kod.jak usunąć ostatni przecinek z ciągu znaków za pomocą 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> 

Odpowiedz

7

Można to zrobić za pomocą .substring():

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

Zastosowanie .substring na wypełnionym ciąg

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

spróbuj tego kodu ...

$('#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

Zastosowanie .slice(start, end) ten sposób:

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

end w plaster '-' odejmie od ostatniej pozycji w łańcuchu.

6

prostu użyć,

w palce tej

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

użytku

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

To wystarczy, aby pominąć ostatni przecinek.

Powiązane problemy