2011-07-25 54 views
5

我遇到了一些Ajax功能问题。TypeError:对象不是一个函数,当它是!

我有一个下拉菜单,当选项更改时需要更新记录。下面是一段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(); 
} 

和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> 

我使用的功能更新,因为某种原因,标签被张贴1隐藏输入元素无论是哪选择我选择(1是我user_ID的,因为如果选择数据库记录值为1

任何人都可以看到这里有什么问题,我设置?

+1

有没有原因你不使用类似jQuery的东西?这将使这个过程更容易。 –

+7

找出为什么你在使用HTML时遇到麻烦,而不是写一个完全没有必要的JavaScript kludge,并且要求JS能够工作......不,他不需要jQuery或任何JavaScript来提交一个直接的表单没有逻辑! –

+1

错误是否给出了一个行号,如果是的话,该行上的代码是什么? – qw3n

回答

13

您使用changeResponsibleParty作为表单的名称,也作为函数的名称,这将导致冲突。重命名其中一个。

+0

我刚试过这个,它工作,谢谢。 – AVProgrammer

+1

如果有效,我会很高兴验证答案。 – Sparkup

+0

我觉得它几乎不可能相信它的工作原理。该表单没有用于“submit()”的实际URL来工作!当您调用“submit()”时,浏览器应该如何确定要做什么? – Pointy

相关问题