[jQuery] Re: [validate] remote vs depends
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
[jQuery] Re: [validate] remote vs depends
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
[jQuery] Re: [validate] remote vs depends
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
[jQuery] Re: [validate] remote vs depends
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