Foros del Web » Programando para Internet » Javascript »

this.value o this me devuelve "undefined" en IE

Estas en el tema de this.value o this me devuelve "undefined" en IE en el foro de Javascript en Foros del Web. Buenos dias! hace un tiempo que no vengo por aca ya que con lo que aprendi de todos ustedes me sirvio para rato! Asi que ...
  #1 (permalink)  
Antiguo 20/05/2011, 06:38
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
this.value o this me devuelve "undefined" en IE

Buenos dias! hace un tiempo que no vengo por aca ya que con lo que aprendi de todos ustedes me sirvio para rato! Asi que les estoy muy agradecido en principio por eso!

Ahora lo que me esta sucediendo es que tengo un script (Que por mas que lo describa es mejor que lo vean), especificamente este:

Código PHP:
echo '<div id="category_'.$row['id'].'" ><a href="javascript:void(0);" onClick="convertToInputag(\''.$row['id'].'\',\'category\',this);">';
echo 
$row['category']."</a> ".utf8_encode("º");
echo 
'</div>'
en el cual lo que hago es llamar a la funcion convertToInputag la cual hace esto:


Código HTML:
function convertToInputag(id, field ,link) {
	//$("a[id=" + id + "]").html("<input class='left' type='text' value='" + link.text + "' onBlur='saveNewValueag(\"" + id + "\",\"" + field + "\", this.value);' />");
$('#' + field +"_"+ id).html("<input class='left' type='text' value='" + link.text + "' onBlur='saveNewValueag(\"" + id + "\",\"" + field + "\", this.value);' />");
}
en el cual el parametro this.value o this como ya lo he probado, no funciona y en lugar de darme como retorno el valor del campo, me devuelve UNDEFINED, lo que mas me molesta es que solamente sucede esto en la porqueria de IE v7! no lo probe en los nuevos, pero necesito que funcione desde 7 en adelante!


Si alguno ya tiene experiencia con esto, le agradeceria que me guiara un poco para poder solucionar este tema!

Desde ya muchas gracias!
  #2 (permalink)  
Antiguo 20/05/2011, 07:41
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: this.value o this me devuelve "undefined" en IE

En lugar de link.text poobá con link.innerHTML
  #3 (permalink)  
Antiguo 20/05/2011, 08:18
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: this.value o this me devuelve "undefined" en IE

Ya que tu firma dice: "No a la xenofobia y la discriminación"

puedo decir tranquilamente: "TE AMOOOOOOOOO!"

me salvaste la vida jaja!

Bueno no te amo, pero te agradezco mucho!

Sale karmita para @Panino5001
  #4 (permalink)  
Antiguo 20/05/2011, 08:40
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 12 años, 11 meses
Puntos: 343
Respuesta: this.value o this me devuelve "undefined" en IE

Consejo de amigo, trata de evitar concatenar strings a mansalva, es super desprolijo y te induce a equivocarte.

Alternativas? Instancia los elementos y definile sus atributos o usa algun tipo de plantilla.

Para el segundo caso yo uso la siguiente utilidad:

Código Javascript:
Ver original
  1. /**
  2.  * Reemplaza los placeholders por sus respectivos valores
  3.  *
  4.  *  tpl('Hello {foo}!', { foo: 'world' }); // "Hello world!"
  5.  *
  6.  * @author Aijoona
  7.  * @param {String} str
  8.  * @param {Object} o
  9.  * @param {Boolean} clear
  10.  */
  11. function tpl(str, o, clear) {
  12.     for (var prop in o) {
  13.         if (Object.prototype.hasOwnProperty.call(o, prop)) {
  14.             str = str.replace((new RegExp('\\{' + prop.toString() + '\\}', 'g')), o[prop] || '');
  15.         }
  16.     }
  17.  
  18.     if(clear) {
  19.         str.replace(/\{.+\}/, '');
  20.     }
  21.    
  22.     return str;
  23. }

Que en tu caso se usaria:

Código Javascript:
Ver original
  1. var INPUT_TEMPLATE = '<input class="left" type="text" value="{text}" ' +
  2.     'onBlur="saveNewValueag(\'{id}\', \'{field}\', {value});" />';
  3.  
  4. var input = tpl(INPUT_TEMPLATE, {
  5.     text: 'LINK',
  6.     id: 666,
  7.     field: '_field',
  8.     value: '3010'
  9. });
  10.  
  11. input; // "<input class="left" type="text" value="LINK" onBlur="saveNewValueag('666', '_field', 3010);" />"
__________________
blog | @aijoona
  #5 (permalink)  
Antiguo 20/05/2011, 09:39
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: this.value o this me devuelve "undefined" en IE

Tenes razon! es muy buena esa idea! a mi me falta un poco de esos pequeños "trucos"! pero por suerte aca se aprende! Siempre me llevo aprendizaje de cada uno de los usuarios de FDW!


Muchas Gracias!

Etiquetas: ie7, this.value, undefined
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:32.