Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeError:对象不是函数,当它是函数时!_Javascript_Ajax - Fatal编程技术网

Javascript TypeError:对象不是函数,当它是函数时!

Javascript TypeError:对象不是函数,当它是函数时!,javascript,ajax,Javascript,Ajax,我在一些Ajax功能方面遇到了问题 我有一个下拉列表,当选项更改时需要更新记录。下面是Javascript的一个片段: function changeResponsibleParty(selectObj, targetDiv){ var idx = selectObj.selectedIndex; var which = selectObj.options[idx].value; target = document.getElementById(targetDiv);

我在一些Ajax功能方面遇到了问题

我有一个下拉列表,当选项更改时需要更新记录。下面是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是我的用户id,如果数据库记录值为1,我会将其设置为选中)


有人看到这里有什么问题吗?

您使用changeResponsibleParty作为表单名称和函数名称,这会导致冲突。请重命名其中一个。您不使用类似jQuery的东西有什么原因吗?这会使此过程更简单。找出HTML rat出现问题的原因她不想写一个完全不必要的JavaScript乱码,需要启用JS才能工作……不,他根本不需要jQuery或任何JavaScript来提交一个没有逻辑的直接表单!错误是否给出行号,如果是,那行上的代码是什么?
action="javascript:changeResponsiblePartyAjax
这不是函数的名称,也不应该将javascript函数指定为表单的action属性。@Dan我没有阅读整个问题。我看到他使用的是遗留事件处理,因此这是一个下意识的评论。我确实注意到了您所说的错误。我发现几乎不可能相信它能工作。表单没有真正的URL让“submit()”工作!当您调用“submit()”时,浏览器应该如何确定该做什么?@Pointy浏览器是令人惊讶的事情,不是吗?这可能行得通。假设函数changeResponsiblePartyAjax()没有返回值-->
return void(0)
。接下来会发生什么:函数将执行它必须执行的操作(我猜它将发送一个ajax请求)…仅此而已。@Stack 101我执行了!我不得不等待,因为网站让我:)@Dr.Molle更改选项将调用ajax函数,该函数将查找隐藏的表单元素并用它更新数据库记录。因此,用户将看到一个带有员工姓名的选择框。更改名称将更新数据库,而无需单击“提交”按钮。