我有一个带有验证码的自定义表单。Captcha 不是模块/插件,它只是我编写的自定义。我想使用带有 validate.js / varien form.js 的 ajax(没有页面刷新)来验证验证码,这是 magento 默认验证器。我用validation.add() 编写了jQuery.ajax 功能。我的问题是,validator() 没有等待 ajax 响应(真/假),它的状态为“未定义”并显示错误。
我在下面粘贴了我的代码:
Validation.add('validate-captcha', 'Please enter correct captcha', function (v) {
  var cp = isValidCaptcha();
  return cp;
});
function isValidCaptcha(){
  var captcha_value = jQuery("#security_code").val();
  var a = 0;
  jQuery.ajax({
    type: "POST",
    url: "<?php echo $this->getUrl('tqr/index/chkcaptcha'); ?>",
    asynchronous:true,
    data: { security_code1: captcha_value },
    dataType: "html",
    success: function(data){
      if( data == 1 ){
        a = 1;
      } else {
        a = 2;
      }                 
    }
  });
  if( a == 1 ){
   return true;
  } else if ( a == 2  ){
    return false;
  }
}
提前致谢