huh, only one minor thing... wicked things happen to the error messages. I specify a message for my input in the validate() call:
messages: { UserName: { required: " ", remote: 'User name already exists or invalid' }, ... } so, in case the input value is invalid, my custom message is correctly displayed, but only on blur. On submit, when I click the submit button, the default message ("Please fix this field") is displayed. How can this be fixed? On Apr 17, 6:02 pm, snobo <g...@riga.ahlers.com> wrote: > Thanx a ton for the ultra-quick reply & help! Worked like a charm, I > did it like this: > > rules.UserName = { > xRemote: { > condition: function(element) { element.value = $.trim > (element.value); return element.defaultValue != element.value; }, > url: 'myurl.php', > data: { action: 'check_user_name' } > } > } > $.validator.addMethod("xRemote", function(value, element) { > var rule = this.settings.rules[element.name].xRemote; > if (rule.condition && $.isFunction(rule.condition) && ! > rule.condition.call(this,element)) return "dependency-mismatch"; > return $.validator.methods.remote.apply(this, arguments); > > }, $.validator.messages.remote); > > is this the correct way to reference the current rule? > > On Apr 17, 5:13 pm, Jörn Zaefferer <joern.zaeffe...@googlemail.com> > wrote: > > > Ok, that makes it a bit more difficult. For a workaround, try > > something like this: > > > $.validator.addMethod("customRemote", function(value, element) { > > if (!remoteRequired(element) { > > return "dependency-mismatch"; > > } > > return $.validator.methods.remote.apply(this, arguments); > > > }, $.validator.messages.remote); > > > The idea is to write a custom method that does the dependency-check. > > If it isn't necessary, return a special string to have the plugin skip > > the method. Otherwise, delegate to the default remote method to > > perform its task. > > > Let me know if that works for you, might be worthwhile adding to the > > docs (until depends/remote is fixed). > > > Jörn > > > On Fri, Apr 17, 2009 at 3:34 PM, snobo <g...@riga.ahlers.com> wrote: > > > > well, I don't see how required can help me... what I want is to make a > > > remote call/check ONLY under certain circumstances. Plus, this field > > > is "constantly"-required already anyway... > > > > actually, now I think there might be various workarounds, e.g. > > > creating a custom method, which would check the condition first and > > > then making an AJAX call manually only if needed... > > > > On Apr 17, 4:16 pm, Jörn Zaefferer <joern.zaeffe...@googlemail.com> > > > wrote: > > >> This is indeed a bug, in this case something never tested for. > > > >> Is using required: function() {} together with remote an option? > > > >> Jörn > > > >> On Fri, Apr 17, 2009 at 3:03 PM, snobo <g...@riga.ahlers.com> wrote: > > > >> > I've been trying to use remote method coupled with depends, like this: > > > >> > remote: { > > >> > depends: function(element) { element.value = > > >> > $.trim(element.value); > > >> > return element.defaultValue != element.value; }, > > >> > url: 'my.php', > > >> > type: 'post', > > >> > data: { action: 'check_user_name' } > > >> > } > > > >> > and this doesn't work, because the whole remote parameter array gets > > >> > overwritten with the result of evaluating my 'depends' function (so > > >> > instead of array it becomes a scalar, true or false). Therefore in > > >> > case of false the AJAX call doesn't happen, and in case of true an > > >> > error occurs (because there's no url, no type, and no data anymore). > > > >> > I assume remote and depends are incompatible, is it correct? If yes, > > >> > is there a workaround for this? > > > >> > TIA > > >> > cheers