[jQuery] Re: [validate] remote vs depends

2009-04-17 Thread Jörn Zaefferer

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

2009-04-17 Thread snobo

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

2009-04-17 Thread Jörn Zaefferer

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

2009-04-17 Thread snobo

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