Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2010, 04:00
adhemo
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 0
Ajax, javascript y un botón "submit"

Hola expert@s,

Hace unos días os lancé una pregunta sobre Javascript y me ayudásteis mucho, ahora tengo otro problemilla

Tengo un foro phpBB en el que estoy implantando AJAX para que cada una de sus páginas, se carguen dentro de un DIV llamado 'barent'. Para ello tengo ya definida la función javascript que es la siguiente:

Código:
<script language="javascript">
// direccion del sitio web;
var site_address = 'http://foro.guillermocampra.com';

// funcion que determina si el enlace es local e invoca AJAX;
function localLink(evt){
var link = evt.target || evt.srcElement;
if(/^a$/i.test(link.nodeName) && (new RegExp('^' + site_address)).test(link.href)){ 
llamarasincrono(link.href, 'barent');
try{
evt.preventDefault();
}catch(error){
evt.returnValue = false;
}}}

// aqui se usa el objeto document para aplicar el evento a todo el documento;
// pero tambien puede ser a uno o varios elementos de tu preferencia;
try{
document.addEventListener('click', localLink, false);
}catch(e){
document.attachEvent('onclick', localLink);
}
</script>
Y para aplicar la función a los enlaces lo hago así:
Código:
<a href="javascript:llamarasincrono('pagina.html', 'barent')">Enlace</a>
Tengo un código aparte que me dio ZeroKilled muy amablemente (http://www.forosdelweb.com/f13/aplicar-funcion-javascript-para-todos-enlaces-778401/) que aplica esa función a todos los links de las páginas automáticamente, aunque por desgracia y no se por qué, no a los botones. De esta forma cada vez que relleno un formulario de escribir un nuevo post y se hace click en el botón submit la página resultante que se abre (en este caso la de "Este mensaje se ha publicado correctamente...") no lo hace dentro del div 'barent'.

He probado a llamar la función directamente en el botón con el evento onClick y onSubmit así:

Código:
<input onSubmit="llamarasincrono(link.href, 'barent');" type="submit" accesskey="s" tabindex="6" name="post" class="mainoption" value="{L_SUBMIT}" />
o así:

Código:
<input onSubmit="llamarasincrono('posting.php', 'barent');" type="submit" accesskey="s" tabindex="6" name="post" class="mainoption" value="{L_SUBMIT}" />
Pero ninguna me ha resultado.



No sé mucho de Javascript ni de AJAX pero seguramente tenga fácil solución.

Muchas gracias de nuevo por vuestra ayuda.

Última edición por adhemo; 18/02/2010 a las 08:03