2011-07-25 14 views
5

Tengo problemas con alguna funcionalidad de Ajax.TypeError: objeto no es una función, cuando lo es!

Tengo un solo menú desplegable que necesita actualizar un registro cuando la opción cambia. Aquí hay un fragmento del Javascript:

function changeResponsibleParty(selectObj, targetDiv){ 
    var idx = selectObj.selectedIndex; 
    var which = selectObj.options[idx].value; 
    target = document.getElementById(targetDiv); 
    target.value = which; 
    document.forms["changeResponsibleParty"].submit(); 
} 

Y el HTML:

<form name="changeResponsibleParty" action="javascript:changeResponsiblePartyAjax('project_todos');" method="post" style="display:inline;"> 

<input type="hidden" name="todo_id" id="todo_id_15" value="15" /> 
<input type="hidden" name="project_id" id="project_id_15" value="2" /> 
<input type="hidden" name="user_id" id="user_id_15" value="" /> 

<select name="user_id_pick" id="user_id_pick_15" onchange="changeResponsibleParty(this, 'user_id_15');" style="border:0;"> 

<option value="0">Anyone</option> 
<option value="1" selected="selected">Allen McCabe</option> 
<option value="2">Thomas Martinez</option> 
</select> 
</form> 

estoy usando la función para actualizar un elemento de entrada oculto porque por alguna razón, la etiqueta fue publicando 1 independientemente de la elegí la opción (1 user_id es mi, que yo pongo como selecciona si el valor es 1. registro de la base

Puede alguien ver lo que está mal aquí?

+1

¿Hay algún motivo por el que no esté utilizando algo como jQuery? Hará que este proceso sea mucho más fácil. –

+7

Averigüe por qué tiene problemas con el código HTML en lugar de escribir un kludge de JavaScript que es completamente innecesario y requiere que JS funcione ... no, no necesita jQuery o JavaScript para enviar un formulario directo con ¡ilógico! –

+1

¿El error da un número de línea y, de ser así, cuál es el código en esa línea? – qw3n

Respuesta

13

se utiliza changeResponsibleParty como nombre del formulario y también como nombre de la función, lo que generará conflictos. Cambia el nombre a uno de ellos.

+0

Acabo de probar esto y funcionó, gracias. – AVProgrammer

+1

Si funcionó, me gustaría validar la respuesta. – Sparkup

+0

Me parece casi imposible de creer que funcione. ¡El formulario no tiene una URL real para que "submit()" funcione! ¿Cómo se supone que el navegador debe decidir qué hacer cuando llama a "submit()"? – Pointy

Cuestiones relacionadas