Validar ef_editable_numero en formulario_ml en toba 3.4

¿Cómo puedo hacer para validar un ef_editable_numero (que el número ingresado no sea mayor al que está en la base de datos) con javascript y ajax?
En el método usado como cuarto parámetro de ajax no muestra el mensaje de error, por favor diganme que me falta.
Además el javascript me da este error:


Este es el código javascript de la extensión del formulario_ml:

{$this->objeto_js}.evt__importe__validar = function(fila)
{
	var id_aporte = this.ef('id_aporte').ir_a_fila(fila).get_estado();
	var id_concepto = this.ef('id_concepto').ir_a_fila(fila).get_estado();
	if(id_aporte != apex_ef_no_seteado && id_concepto != apex_ef_no_seteado){
		var parametros = {'id_aporte': id_aporte, 'id_concepto': id_concepto};
		this.controlador.ajax('get_importe', parametros, this, this.atender_respuesta);
	}
}
{$this->objeto_js}.atender_respuesta = function(data)
{
	var ef_importe = this.ef('importe');
	var importe = ef_importe.valor();
	var enviar = true;
	if(data){
		if(importe > data[0].importe){
			ef_importe.set_error('Debe ingresar un importe menor o igual a ' + data[0].importe.toString());
			ef_importe.set_estado(data[0].importe);
			enviar = false;
		}
	}
	return enviar;
}

Por favor, necesito una respuesta, tengo que solucionarlo con urgencia

Estas en un formulario comun o un formulario ML?.

Si tenes en PHP (previo a enviar el formulario al cliente) el valor que no se puede superar, podes indicarle al EF que trabaje dentro del rango [0…Numero] mediante este metodo.

Si estas en un ML (salvo que sea el mismo tope para todos) vas a tener que recurrir a enviar el tope en una variable global a JS y luego comparar en el evt__ef__procesar.

Estoy en un formulario ml y el tope lo da el valor que viene de una consulta a una tabla, no es un valor constante, es variable porque cada registro tiene distintos valores.
Este es el código del método ajax que devuelve el importe:

function ajax__get_importe($parametros, toba_ajax_respuesta $respuesta)
{
	$id_aporte = quote($parametros['id_aporte']);
	$id_concepto = quote($parametros['id_concepto']);
	$sql = "select importe from aportes_pendientes where id_aporte=$id_aporte and "
		."id_concepto=$id_concepto";
	$aporte_pendiente = consultar_fuente($sql);
	$respuesta->set($aporte_pendiente);
}

Y este es el código de la extensión del formulario_ml:

<?php
class form_ml_aportes extends sindicato_ei_formulario_ml
{
	//-----------------------------------------------------------------------------------
	//---- JAVASCRIPT -------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function extender_objeto_js()
	{
		echo "
		//---- Procesamiento de EFs --------------------------------
		
		{$this->objeto_js}.evt__importe__procesar = function(es_inicial, fila)
		{
			var id_aporte = this.ef('id_aporte').ir_a_fila(fila).get_estado();
			var id_concepto = this.ef('id_concepto').ir_a_fila(fila).get_estado();
			if(id_aporte != apex_ef_no_seteado && id_concepto != apex_ef_no_seteado)
			{
				var parametros = {'id_aporte': id_aporte, 'id_concepto': id_concepto};
				this.controlador.ajax('get_importe', parametros, this, this.atender_respuesta);
			}
		}
		{$this->objeto_js}.atender_respuesta = function(data)
		{
			var ef_importe = this.ef('importe');
			var importe = ef_importe.get_estado();
			var enviar = true;
			if(data){
				if(importe > data[0].importe){
					ef_importe.set_error('Debe ingresar un importe menor o igual a ' + data[0].importe.toString());
					ef_importe.set_estado(data[0].importe);
					enviar = false;
				}
			}
			return enviar;
		}
		";
	}

}
?>

Por favor decime si está bien lo que estoy haciendo o como tengo que corregirlo.

Ahí funcionó, cuando le quito el foco a cada ef_importe me hace la validación, muestra el mensaje de error que le pongo y me pone el importe correcto que debe tener ese ef si el importe ingresado es mayor al que tiene en la tabla