[OT] onkeypress

19/07/2006 - 12:47 por Piolin Net | Informe spam
Hola!

Estoy creando inputs dinamicamente de la sigiente forma:
var newInput = document.createElement("input");
newInput.type = "text";
newInput.name = "nombre";
newInput.value = "1";

hasta aqui todo correcto pero cunado intento asignarle un valor al evento
newInput.onkeypress = "alert('pulso')";

no me hace caso ... Se asignan los eventos de una manera diferente?
Gracias.

Preguntas similare

Leer las respuestas

#11 Miguel Gonzalez
19/07/2006 - 18:19 | Informe spam
Hola Piolin!

Prueba con:

newInput["onkeypress"]=new Function("alert(true)");

No es exactamente DOM, pero funcional...

PD: El problema radica en un "bug" del manejo del DOM por parte del IE
(en otros navegadores "modernos" tu código original funciona
perfectamente). Si haces pruebas, verás que no es un problema sólo con
los eventos, sino que tampoco funciona correctamente con los atributos
de clase (class="") y de estilo (style=""):

http://channel9.msdn.com/wiki/defau...ammingBugs


Saludos!

Miguel

Piolin Net escribió:
lamentablemente eso tb probe y ...
lo peor es que en to la web no consigo encontrar documentacion que funcione
sobre el asunto.

voy a tener q irme al foro en inglis, haber si lo yankies estan mas puestos
que nosotros. AIS!!!

"Victor B." wrote:

Prueba asà­:

onkeypress="javascript: alert('pulso');"

Và­ctor B.
Desarrollador independiente
"Piolin Net" escribió en el mensaje
news:
No eso no influye;

es muy curioso xq hago un alert(newInput.onkeypress) y si me devuelve el
texto:

alert('pulso');
pero no funciona.

y si le pongo el onkeypress directamente en cod. html un alert de eso
devuelve:
function anonymous()
{
alert('pulso');
}

he probado a meter

newInput.onkeypress = "function anonymous(){return alert('pulso');}";

pero ni papa.

??????

"Victor B." wrote:

newInput.onkeypress = "alert('pulso')";
newInput.onkeypress = "alert('pulso');";
Igual es una tonterà­a pero falta el punto y coma al cerrar el paréntesis?

Và­ctor B.
Desarrollador independiente
"Piolin Net" escribió en el mensaje
news:
fue otra de mis tentativas pero solo sirve para atributos no para
eventos.
gracias

"Nuno Santos" wrote:

Temta con setAttribute()

NS


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Piolin Net" wrote in message
news:
Hola!

Estoy creando inputs dinamicamente de la sigiente forma:
var newInput = document.createElement("input");
newInput.type = "text";
newInput.name = "nombre";
newInput.value = "1";

hasta aqui todo correcto pero cunado intento asignarle un valor al
evento
newInput.onkeypress = "alert('pulso')";

no me hace caso ... Se asignan los eventos de una manera diferente?
Gracias.
















Respuesta Responder a este mensaje
#12 Piolin Net
19/07/2006 - 18:20 | Informe spam
FUNCIONO PERFECT!!!

LO QUE NO ENTIENDO ES COMO HACELO DE LA OTRA MANERA ... EN FIN ESTO ME VALE
HASTA QUE ADQUIERA EL CONOCIMIENTO SOBRE LA OTRA MANERA PARA QUE SEA
OPERATIVO EN OTROS EXPLORADORES

GRACIAS.

"Nuno Santos" wrote:

Hice de esta forma e funciona, te sirve???

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>

<form name="myForm" id="myForm">
<input type="text" name="myInput" id="myInput">
</form>

<script language="JavaScript">
var newInput = document.createElement('<input type="text" name="nombre"
id="nombre" value="1" onkeypress="alert(12);">');
//newInput.type = "text";
//newInput.name = "nombre";
//newInput.value = "1";
//newInput.onkeypress = "alert(1);";

document.forms[0].appendChild(newInput);

</script>


</BODY>
</HTML>


NS


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Piolin Net" wrote in message
news:
>
> lamentablemente eso tb probe y ...
> lo peor es que en to la web no consigo encontrar documentacion que
> funcione
> sobre el asunto.
>
> voy a tener q irme al foro en inglis, haber si lo yankies estan mas
> puestos
> que nosotros. AIS!!!
>
> "Victor B." wrote:
>
>> Prueba así:
>>
>> onkeypress="javascript: alert('pulso');"
>>
>> Víctor B.
>> Desarrollador independiente
>> "Piolin Net" escribió en el mensaje
>> news:
>> > No eso no influye;
>> >
>> > es muy curioso xq hago un alert(newInput.onkeypress) y si me devuelve
>> > el
>> > texto:
>> >
>> > alert('pulso');
>> > pero no funciona.
>> >
>> > y si le pongo el onkeypress directamente en cod. html un alert de eso
>> > devuelve:
>> > function anonymous()
>> > {
>> > alert('pulso');
>> > }
>> >
>> > he probado a meter
>> >
>> > newInput.onkeypress = "function anonymous(){return alert('pulso');}";
>> >
>> > pero ni papa.
>> >
>> > ??????
>> >
>> > "Victor B." wrote:
>> >
>> >> newInput.onkeypress = "alert('pulso')";
>> >> newInput.onkeypress = "alert('pulso');";
>> >> Igual es una tontería pero falta el punto y coma al cerrar el
>> >> paréntesis?
>> >>
>> >> Víctor B.
>> >> Desarrollador independiente
>> >> "Piolin Net" escribió en el
>> >> mensaje
>> >> news:
>> >> > fue otra de mis tentativas pero solo sirve para atributos no para
>> >> > eventos.
>> >> > gracias
>> >> >
>> >> > "Nuno Santos" wrote:
>> >> >
>> >> >> Temta con setAttribute()
>> >> >>
>> >> >> NS
>> >> >>
>> >> >>
>> >> >> Nuno Santos
>> >> >> nunos7[REMOVER]@hotmail.com
>> >> >>
>> >> >> "Piolin Net" wrote in message
>> >> >> news:
>> >> >> > Hola!
>> >> >> >
>> >> >> > Estoy creando inputs dinamicamente de la sigiente forma:
>> >> >> > var newInput = document.createElement("input");
>> >> >> > newInput.type = "text";
>> >> >> > newInput.name = "nombre";
>> >> >> > newInput.value = "1";
>> >> >> >
>> >> >> > hasta aqui todo correcto pero cunado intento asignarle un valor
>> >> >> > al
>> >> >> > evento
>> >> >> > newInput.onkeypress = "alert('pulso')";
>> >> >> >
>> >> >> > no me hace caso ... Se asignan los eventos de una manera
>> >> >> > diferente?
>> >> >> > Gracias.
>> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
>>
>>
>>



Respuesta Responder a este mensaje
#13 Piolin Net
19/07/2006 - 18:30 | Informe spam
Efectivamente ... esa es la conclusion que me rondaba la cabeza aunque con
las propiedades si que interpreta que x ejemplo la anchura sea de 20 px.

x eso estoy casi convencido que tiene q haber un metodo que asigne los
eventos al objeto. algo parecido al setAtribute para asignar atributos (pero
no he encontrado nada).

de todas formas es curioso, si haces un innerHTML y 'pintas' el codigo html
entero, va de cine. Con la solucion de Nuno de momento me apaño.

Gracias a todos.

"Matías Iacono" wrote:

Leyendo un poco los post, y aunque no tengo la solución creo que se a que se
debe, y por lo menos es algo :)

Ten en cuenta que al escribir código directo como HTML, este no puede ser
interpretado directamente. En teoría debería funcionar, ya que le asignas a
la propiedad de un evento la función a disparar. Pero, es posible que sea
tomado como simple texto, y no como una funcion o una acción.

Es lo mismo cuando quieres hacer:

var Valor;
var a = 1;
var b = 2;
Valor = "a+b";

Esto, indudablemente no sumará nada, si no, te hará que la variable VALOR
contenga el string a+b.

Pero es muy diferente si haces:

var Valor;
var a = 1;
var b = 2;
Valor = eval("a+b");

Esto hace que Valor si tenga el resultado de la suma. Debido a que se
transforma el texto en las variables indicadas.

Entonces, puede que en el código esté pasando el mismo problema. Que en vez
de ser tomado como una función, lo que esté pasando es que simplemente es
manipulado como una cadena string.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net
Orador INETA
"Piolin Net" escribió en el mensaje
news:
> Hola!
>
> Estoy creando inputs dinamicamente de la sigiente forma:
> var newInput = document.createElement("input");
> newInput.type = "text";
> newInput.name = "nombre";
> newInput.value = "1";
>
> hasta aqui todo correcto pero cunado intento asignarle un valor al evento
> newInput.onkeypress = "alert('pulso')";
>
> no me hace caso ... Se asignan los eventos de una manera diferente?
> Gracias.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida