我用一个文本和一个复选框编写了简单的表单。接下来我编写了运行onsubmit形式的函数。当我使用onsubmit函数文本和复选框值提交表单时清除(文本只发送变量的名称但没有值,复选框没有发送任何内容),否则,没有onsubmit函数一切都很好。为什么?有一个代码:
<!DOCTYPE html>
<html>
<head>
<script>
function addInput(task) {
document.getElementById('adminForm').innerHTML += "<input type='hidden' value="+task+" name=task/>";
}
</script>
</head>
<body>
<form method="get" id="adminForm" onsubmit="addInput('Save')">
<input type="text" name="example"/>
<input type="checkbox" name="box" value="1"/>
<input type="submit" name="tas" value="Send"/>
</form>
</body>
</html>
答案 0 :(得分:1)
几个问题
您需要返回false以停止提交 - 您只是看到您的页面正在重新加载 - 或者显示服务器的结果以查看它已提交
您需要更新div,而不是表单:
<!DOCTYPE html>
<html>
<head>
<script>
function addInput(task) {
document.getElementById('adminForm').innerHTML += "<input type='hidden' value="+task+" name=task/>";
window.console && console.log(task+" added");
return false; // remove this if you want the form to be submitted
}
</script>
</head>
<body>
<form method="get" onsubmit="addInput('Save')">
<div id="adminForm">
<input type="text" name="example"/>
<input type="checkbox" name="box" value="1"/>
<input type="submit" name="tas" value="Send"/>
</div>
</form>
</body>
</html>