39 messaggi dal 17 novembre 2011
Salve a tutti,
Ho un terribile problema. Sto avviando un progetto con ASP.net MVC nel quale ho utilizzato i componenti telerik nelle versione opensource. Attivando la globalizzazione del componenti ho poi dei problemi relativi ai currency che avendo la , come separatore decimale non vengono riconosciuti come numeri. Da quanto ho visto il problema è insito in jquery nella parte relativa alla globalizzazione. Le soluzioni che ho trovato (vale a dire settare la cultura lato client tramite una funzione javascript) mi hanno consentito di risolvere il problema ma ora non funziona più la validazione client-side! cioè nel momento in cui faccio il post di una pagina i cui dati violano le restrizioni imposte nei data annotions la pagina viene postata lo stesso e sono costretto a fare la validazione del modello (ModelState.IsValid) per poi restituire nuovamente la vista in caso di errore. Francamente non capisco come ovviare al problema, possibile che non esista una soluzione definitiva? ringrazio chiunque voglia dedicare un pò di attenzione a questo problema. Cosimo
cosimo.cinefra wrote:
Francamente non capisco come
ovviare al problema, possibile che non esista una soluzione definitiva?

qui ci sono diversi spunti:
http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
4 messaggi dal 26 aprile 2012
Daniele Bochicchio ha scritto:
cosimo.cinefra wrote:
Francamente non capisco come
ovviare al problema, possibile che non esista una soluzione definitiva?

qui ci sono diversi spunti:
http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx .

Tiro su questo post perché ho lo stesso identico problema, ma anche andando su quel blog non ho risolto.
Quello che interessa del codice è questo:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Globalization/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Globalization/globalize.culture.it-IT.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $.Globalize.preferCulture("it-IT");
        $.validator.methods.number = function (value, element) {
            return !isNaN(Globalize.parseFloat(value));
        }
            });

I campi da validare nel model sono dei float, esattamente come quelli del blog citato. Ho usato Globalize invece che global perché con l'ultima versione del plugin quella roba è stata spostata e rinominata.
Risultato: nulla di fatto: la validazione client side accetta i punti come separatori decimali e rigetta le virgole.
60 messaggi dal 17 giugno 2003
io ho risolto con questo codice

$.validator.methods.number = function (value, element) {
if (value.indexOf(Globalize.culture().numberFormat[',']) > -1) {
return false;
}

if (!isNaN(Globalize.parseFloat(value))) {
return true;
}

return false;
}

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.