2017-08-10 2 views
1

J'utilise un Multiselect kendo. La valeur renvoyée par défaut est une valeur délimitée par des virgules des valeurs sélectionnées. Je voudrais l'afficher dans un format plus lisible avec un espace entre les virgules. Mon code ....Kendo Multiselect valeur remplacer la virgule avec virgule + espace

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> 

Malheureusement, mon résultat ne remplace que la première virgule dans une sélection.

par exemple. Chicago, New Jersey, San Francisco devient Chicago, New Jersey, San Francisco la seconde (et les virgules suivantes) ne sont pas remplacées.

Quelqu'un sait pourquoi?

Répondre

2

Malheureusement, mon résultat ne remplace que la première virgule d'une sélection.

Afin de remplacer toutes les occurrences de votre modèle, vous pouvez changer:

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

à:

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

L'extrait:

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

Merci .... J'ai toujours pensé que .replace dans jQuery a remplacé toutes les instances et pas le premier, il a trouvé ... à peu près la même chose que .Replace fait dans .Net – Mych