Foros del Web » Programando para Internet » Javascript »

javascript no acepta propiedad o método

Estas en el tema de javascript no acepta propiedad o método en el foro de Javascript en Foros del Web. Hola, estoy teniendo un problema muy raro con mi aplicación. Tengo una jsp, con un botón y un formulario. Relleno el formulario, le doy a ...
  #1 (permalink)  
Antiguo 10/11/2011, 03:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 11 meses
Puntos: 1
javascript no acepta propiedad o método

Hola, estoy teniendo un problema muy raro con mi aplicación. Tengo una jsp, con un botón y un formulario. Relleno el formulario, le doy a un botón, y mando el formulario a un action, que con un create me crea un objeto, y me devuelve a la jsp que lista todos los objetos de ese tipo. Hasta ahí todo funciona bien. El problema es cuando seguidamente quiero hacer otro insert, otro create. Vuelvo a rellenar el formulario, vuelo a darle al botón, y me salta un error de javascript, el cual me dice:

"El objeto no acepta esta propiedad o método"

Lo que no parece aceptar es lo siguiente:

Cita:
<s:a href="#" onclick="ArrivalFlightCreate()"><img
src="../../web/images/icono_aceptar.png"
alt="<s:text name="createButtonArrivalFlight" />"
border="0"/></s:a>
cosa que no comprendo, la primera vez va genial, y la segunda, haciendo lo mismo, no funciona. ArrivalFlightCreate() es una función de javascript en la que no llega a entrar la segunda vez, lo he comprobado. ¿Podéis decirme por dónde puede ir el error? No veo nada mal escrito, y como he dicho a la primera funciona bien. ¿Por qué una vez sí y otra vez no?

Muchas gracias de antemano por la ayuda, aunque no sepáis exactamente qué pasa, me gustaría mucho que alguien pudiera orientarme, porque no sé ni por dónde tirar.

Un saludo
  #2 (permalink)  
Antiguo 10/11/2011, 04:46
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Respuesta: javascript no acepta propiedad o método

Posiblemente el problema esté en el código javascript, porque en el código que has puesto lo único "extraño" que veo es lo que te he marcado y no le veo relación con lo que nos cuentas.


<s:a href="#" onclick="ArrivalFlightCreate()"><img
src="../../web/images/icono_aceptar.png"
alt="<s:text name="createButtonArrivalFlight" />"
border="0"/></s:a>
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #3 (permalink)  
Antiguo 10/11/2011, 04:58
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: javascript no acepta propiedad o método

Hola, <s: ...> significa que son etiquetas struts (estoy utilizando struts2). El código del método es el siguiente (no puedo poner la jsp entera por ser demasiado larga):

Código:
...<script type="text/javascript">
...
function ArrivalFlightCreate() 
{
	var airline = document.forms[0].iataCompanyCode[formArrival.iataCompanyCode.selectedIndex].value;
	var flightNumber = document.forms[0].flightNumber.value;
	var airport = document.forms[0].originAirport[formArrival.originAirport.selectedIndex].value;
	var flightType = document.forms[0].flightTypeCode[formArrival.flightTypeCode.selectedIndex].value;
	var ruleCode = document.forms[0].ruleCode[formArrival.ruleCode.selectedIndex].value;
	var scheduled = document.forms[0].scheduled[formArrival.scheduled.selectedIndex].value;
	var joined = document.forms[0].joined[formArrival.joined.selectedIndex].value;
	var situacion = document.forms[0].idSituation[formArrival.idSituation.selectedIndex].value;
	//comprobamos las fechas, y despues si los campos obligatorios estan rellenos
	var fechaValida = comprobandoFechas();
   	if (fechaValida == "true" || fechaValida == "")
    {
		if (airline == null || airline == '')
		{
			alert('<s:text name="errorEmptyAirline"/>');
		}
		else
		{
			if (flightNumber == null || flightNumber == '')
			{
				alert('<s:text name="errorEmptyFlightNumber"/>');
			}
			else
			{
				if(flightType == null || flightType =='')
				{
					alert('<s:text name="errorEmptyFlightType"/>');
				}
				else
				{
					if (ruleCode == null || ruleCode == '')
					{
						alert('<s:text name="errorEmptyRuleCode"/>');
					}
					else
					{	
						if (scheduled == null || scheduled == '')
						{
							alert('<s:text name="errorEmptyScheduled"/>');
						}
						else
						{	
							if (joined == 'F' || joined == 'P')
							{
								alert('<s:text name="errorFullJoined"/>');
							}
							else
							{	
								if (situacion != null && situacion != '')
								{
									alert('<s:text name="errorFullSituation"/>');
								}
								else
								{		
									if (airport == null || airport == '')
									{
										alert('<s:text name="errorEmptyAirport"/>');
									}
									else
									{
										document.forms[0].action = "/AODB/scheduling/arrivalFlight/ArrivalFlightCreate.action";
										document.forms[0].submit();
									}
								}
							}
						}
					}
				}
			}
		}
	}
	else
	{
		if (fechaValida == "errorFormatDate")
        {
            alert("<s:text name="errorFormatDate"/>");
        }
        if (fechaValida == "errorFormatHour")
        {
            alert("<s:text name="errorFormatHour"/>");
        }
        if (fechaValida == "errorMinutes")
        {
            alert("<s:text name="errorMinutes"/>");
        }
        if (fechaValida == "errorHour")
        {
            alert("<s:text name="errorHour"/>");
        }
        if (fechaValida == "errorEmptyHour")
        {
            alert("<s:text name="errorEmptyHour"/>");
        }
        if (fechaValida == "errorYear")
        {
            alert("<s:text name="errorYear"/>");
        }
        if (fechaValida == "errorMonth")
        {
            alert("<s:text name="errorMonth"/>");
        }
        if (fechaValida == "errorDayOfWeek")
        {
            alert("<s:text name="errorDayOfWeek"/>");
        }
	}
    
}

...
</script>

</head>
<body>

<div id="contenedor">

    <s:include value="../../../jsp/application/menu.jsp"/>

    <div id="contenido">
...
                                    <td style="width:100px">
                                        <div id="botones">
                                            <s:a href="#" onclick="QueryFl()"><img
                                                    src="../../web/images/icono_buscar.png"
                                                    alt="<s:text name="queryButtonArrivalFlight" />"
                                                    border="0"/></s:a>
                                            <s:a href="#" onclick="ArrivalFlightCl()"><img
                                                    src="../../web/images/icono_cancelar.png"
                                                    alt="<s:text name="clearButtonArrivalFlight" />"
                                                    border="0"/></s:a>
                                            <s:a href="#" onclick="ArrivalFlightCreate()"><img
                                                    src="../../web/images/icono_aceptar.png"
                                                    alt="<s:text name="createButtonArrivalFlight" />"
                                                    border="0"/></s:a>
                                        </div>
                                    </td>
                                </tr>
                                <tr>
                                    <td><s:text name="mandatoryFields"/></td>
                                </tr>
                            </table>
                        </s:form>
                    </div>
                </div>

                <div id="listOfArrivals">
                   ...            </div>
        </div>
        <div id="pieAncho"><s:actionerror /></div>
    </div>
</div>

</body>
</html>
Lo que me parece raro es que al cargar la página la primera vez todo funcione bien, y al cargarla una segunda vez, cuando he creado el primer objeto, ya no funcione la referencia al método.

Un saludo
  #4 (permalink)  
Antiguo 10/11/2011, 05:06
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Respuesta: javascript no acepta propiedad o método

Pues lo único que se me ocurre, es que pongas chivatos (alerts) en las distintas funciones, para cuando hagas el segundo click que es el que te da el error, localices el punto exacto donde te lo da. En la función ArrivalFlightCreate no parece que haya ningún problema, ya que parece que se dedica exclusivamente a comprobar y declarar variables.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #5 (permalink)  
Antiguo 10/11/2011, 05:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: javascript no acepta propiedad o método

El problema es precisamente ese, no me sirven los alerts, porque no llega a entrar en la función ArrivalFlightCreate(). Al pulsar el botón, me dice que

"El objeto no acepta esta propiedad o método"


y la línea que me dá como error es:

<s:a href="#" onclick="ArrivalFlightCreate()"><img

Yo entiendo de ahí que no me reconoce ArrivalFlightCreate() como método de javascript, y lo que no sé es porqué. Ya digo que la primera vez que me carga la página no hay ningún problema, y a la segunda vez, me dá este error.

Un saludo

Etiquetas: formulario, funcion, js, propiedad, aceptar
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 08:32.