i´m using knockout validation validate form clientside. working perfect except when call method showallmessages(true), shows messages in english, ignoring locale settings. code looks this:
<asp:scriptmanager id="scriptmanagermaster" runat="server"> <scripts> <asp:scriptreference path="js/jquery-2.1.4.min.js"/> <asp:scriptreference path="js/bootstrap.min.js" /> <asp:scriptreference path="js/knockout-3.3.0.js" /> <asp:scriptreference path="js/knockout.validation.js"/> <asp:scriptreference path="js/es-es.js"/> <asp:scriptreference path="js/app/_run.js"/> <asp:scriptreference path="js/app/app.datamodel.js"/> <asp:scriptreference path="js/app/app.viewmodel.js"/> </scripts> </asp:scriptmanager> ko.validation.locale("es-es"); ko.validation.init({ registerextenders: true, messagesonmodified: true, insertmessages: true, parseinputattributes: true, errorelementclass: "has-error", errormessageclass: "help-block", decorateinputelement: true }, true); self.saveuser = function () { var errors = ko.validation.group(self, { deep: true }); if (errors().length === 0) { var user = ko.tojson(self); datamodel.putuser(user) .done(function(result) { alert("se guardó el usuario"); }) .fail(self.onusercreationerror); } else { errors.showallmessages(true); } } when saveuser() validates correctly, error messages "this field required" instead of "este campo es requerido" should since i'm using es-es locale
how use locale in case?
i went trough ko.validation.js file , found messages directly in file , responses not referencing locale.js messages. quick fix, change messages english locale.js 1 manually or doing like:
kv.rules = {}; kv.rules['required'] = { validator: function (val, required) { var testval; if (val === undefined || val === null) { return !required; } testval = val; if (typeof (val) === 'string') { if (string.prototype.trim) { testval = val.trim(); } else { testval = val.replace(/^\s+|\s+$/g, ''); } } if (!required) {// if passed: { required: false }, don't require return true; } return ((testval + '').length > 0); }, message: 'este campo es obligatorio.' };
Comments
Post a Comment