2017-08-10 7 views
1

Ich benutze ein Kendo Multiselect. Der standardmäßig zurückgegebene Wert ist ein kommagetrennter Wert der ausgewählten Werte. Ich möchte dies in einem besser lesbaren Format mit einem Leerzeichen zwischen den Kommas anzeigen. Mein Code ....Kendo Multiselect Wert ersetzen Komma durch Komma + Leerzeichen

http://dojo.telerik.com/OcIxEw

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Kendo MultiSelect replace comma with comma space</title> 

    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.common.min.css"> 
    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.rtl.min.css"> 
    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.default.min.css"> 
    <link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.1.112/styles/kendo.mobile.all.min.css"> 

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script src="http://kendo.cdn.telerik.com/2016.1.112/js/angular.min.js"></script> 
    <script src="http://kendo.cdn.telerik.com/2016.1.112/js/jszip.min.js"></script> 
    <script src="http://kendo.cdn.telerik.com/2016.1.112/js/kendo.all.min.js"></script></head> 
<body> 

    <select id="msCity" multiple="multiple" data-placeholder="Select Cities" > 
    <option>Chicago</option> 
    <option>Las Vegas</option> 
    <option>Los Angeles</option> 
    <option>New Jersey</option> 
    <option>New York</option> 
    <option>San Francisco</option> 
    </select> 
    <br /> 
    <br /> 
    <button id="btnGet" type="button" onclick="btnGetClick()">Get Value</button> 
    <br /> 
    <br /> 
    <input id="result" type="text" style="width:100%" readonly /> 

    <script> 

    //$(document).ready(function() { 

      $('#msCity').kendoMultiSelect({ autoClose: false }); 

    //}); 

     function btnGetClick() { 
     var selectedCities = ""; 
     selectedCities = $('#msCity').data("kendoMultiSelect").value().toString(); 
     $('#result').val(selectedCities.replace(",", ", ")); 
     } 

    </script> 

</body> 
</html> 

Leider ersetzt mein Ergebnis nur das erste Komma in jeder Auswahl.

z.B. Chicago, New Jersey, San Francisco wird Chicago, New Jersey, San Francisco die zweite (und nachfolgende Kommas) nicht ersetzt werden.

Wer weiß warum?

Antwort

2

Leider ersetzt mein Ergebnis nur das erste Komma in einer Auswahl.

Um alle Vorkommen des Musters ersetzen können Sie ändern:

selectedCities.replace(",", ", ") 

zu:

selectedCities.replace(/,/g, ', ') 

Das Snippet:

$('#msCity').kendoMultiSelect({ autoClose: false }); 
 

 
function btnGetClick() { 
 
    var selectedCities = ""; 
 
    selectedCities = $('#msCity').data("kendoMultiSelect").value().toString(); 
 
    $('#result').val(selectedCities.replace(/,/g, ', ')); 
 
}
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.112/styles/kendo.common.min.css"> 
 
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.112/styles/kendo.rtl.min.css"> 
 
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.112/styles/kendo.default.min.css"> 
 
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2016.1.112/styles/kendo.mobile.all.min.css"> 
 

 
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> 
 
<script src="https://kendo.cdn.telerik.com/2016.1.112/js/angular.min.js"></script> 
 
<script src="https://kendo.cdn.telerik.com/2016.1.112/js/jszip.min.js"></script> 
 
<script src="https://kendo.cdn.telerik.com/2016.1.112/js/kendo.all.min.js"></script> 
 

 

 
<select id="msCity" multiple="multiple" data-placeholder="Select Cities" > 
 
    <option>Chicago</option> 
 
    <option>Las Vegas</option> 
 
    <option>Los Angeles</option> 
 
    <option>New Jersey</option> 
 
    <option>New York</option> 
 
    <option>San Francisco</option> 
 
</select> 
 
<br /> 
 
<br /> 
 
<button id="btnGet" type="button" onclick="btnGetClick()">Get Value</button> 
 
<br /> 
 
<br /> 
 
<input id="result" type="text" style="width:100%" readonly />

+0

Danke .... Ich dachte immer, dass .replace in jQuery alle Instanzen ersetzt und nicht die erste, die es gefunden hat ... ähnlich wie .Replace in .Net – Mych

Verwandte Themen