JavaScript无法提交表单,即使一切都是应有的?

时间:2014-03-11 18:01:26

标签: javascript html forms

我的JavaScript遇到了一些问题!

   <form action="addcategory.php" name="addContact">
   <input id="category" name="category" type="hidden" value="" />
   </form>

这是我的表格......这里没什么特别的。

function addCategory(){
    if(document.getElementById('category').value = prompt("Indtast ny kategori", "Ny kategori")){
        document.forms['addContact'].submit();
    }
}

这是JavaScript。 <=> 格式的JavaScript将被加载。

    <div onclick="addCategory()" class="save">Ny kategori</div>

触发该功能的div ... div位于页面的开头,但不应该有任何区别。

当我点击div时,会出现一个提示,我输入一个字符串并按OK,但后来我收到了以下错误:&#34;无法调用方法&#39;提交&#39;未定义&#34;

请帮忙,这太烦人了!

修改

<?php
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SimpleCRM | Kategorier </title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="search_bar">
<a href="../"><div id="logo">
SimpleCRM
</div></a>
<div class="wrapper">
<div class="floats" style="float: left">
<table>
<tr>
<td>
<?php
?></td>
</tr>
<tr>
<td id="menu">
<div onclick="addCategory()" class="save">Ny kategori</div>
<div onclick="editContact()" class="button">Omdøb kategori</div>
<div id="delete" onclick="deleteContact()" class="button">Slet kategori</div>
</table>
</div>
<div class="floats" style="float: right">

<table>
<tr>

<td align="right">
<?php
?>
</td>
</tr>
<tr>
<td align="right">
<div onclick="wnidow.location = 'categories.php'" id="changecategories">Administrer kategorier</div>
<div onclick="window.location = '../logout.php'" id="logout">Log ud</div>
</td>
</table>
</div>
</div>
</div>
<div align="center" class="wrapper">
<div id="categories">
<form>
<select size="20" name="category">
<?php
?>
</select>
</div>
<div style="width:500px;" class="wrapper">
<div onclick="window.location = '../CRM?CRM='  +Math.floor((Math.random()*1000)+1)"  id="back">
Tilbage
</div>
</div>

</div>
<form action="addcategory.php" name="addCategory" id="addCategory">
<input id="category" name="category" type="hidden" value="" />
</form>
</body>
</html>
<script>
function deleteContact(){
    if(confirm('ADVARSEL:\nDu er ved at slette denne kontakt!'))
    {
        document.forms['delete'].submit();
    }
}
function editContact(){
    window.location.href = document.URL + '&edit=true';
}
function addCategory(){
    if(document.getElementById('category').value = prompt("Indtast ny kategori", "Ny kategori")){
        console.log(document.forms);
        document.forms.addCategory.submit();
    }
}
</script>

这是我的整个文档(PHP代码已被删除),所以我希望您现在可以更清楚地看到所有内容......

1 个答案:

答案 0 :(得分:1)

问题是您在另一个form元素中有form个标记:

<form>
   <select size="20" name="category">
    ...
   <form action="addcategory.php" name="addCategory" id="addCategory">
    ...
</form>

这是无效的,内部form标记会被忽略,因此名称或ID为addCategory 的元素不存在。删除第一个form标记,它似乎没有任何用途。


如果适当缩进的原因很重要,那就是一个。