为动态创建的元素分配唯一名称
assigning and unique name to dynamically created element
这是JavaScript代码,我想在每次创建新元素时更改name属性。每次添加新表行时,我都会创建新的文本框。但是当我尝试从 servlet 访问这些元素的值时,它向我显示空值。我到底做错了什么?任何帮助将不胜感激。提前感谢!!
<html>
<head>
<script>
function addRow()
{
var table = document.getElementById('table');
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "text";
element1.name ="item"+rowCount;
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "text";
element2.name ="amount"+rowCount;
cell2.appendChild(element2);
var cell3 = row.insertCell(2);
cell3.innerHTML = ' <input type="button" value="Edit" onclick="editRow(this)"/> <input type="button" value="Delete" onclick="deleteRow(this)"/>';
cell3.setAttribute("style", "display:none;");
var cell4 = row.insertCell(3);
cell4.innerHTML = '<input type="button" value="Save" onClick="saveRow(this)">';
document.listform.hfield.value=rowCount;
}
function submitList()
{
document.listform.submit();
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Create your list</title>
</head>
<body>
<form name="listform" method="post" action="Billingservlet">
<div class="wrap">
<center>
<div id="display">
<table id='table' border="0">
<tr id='id'>
<th>Item Name</th>
<th>No. of units</th>
</tr>
</table>
<input type="button" value="Add another item" onclick="addRow()">
<input type="button" value="Submit List" onclick="submitList()">
<input type="hidden" name="hfield">
我的 Servlet 代码是
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out= response.getWriter();
int i=1;
String val1=request.getParameter("item2");
out.print(val1);
我使用 chrome 检查了哪些数据将发送到 servlet:
hfield:2
Response Headersview parsed
HTTP/1.1 200 OK
server: Apache-Coyote/1.1
Content-Length: 4
Date: Fri, 13 Sep 2013 02:21:29 GMT
1)您可以使用element.name=newName;
或
2)您可以使用element.setAttribute("name",newName);
其中任何一个都将设置元素的"name"属性。
所以。。。
var element1 = document.createElement("input");
element1.name="myInput";
。或。。。
var element1 = document.createElement("input");
element1.setAttribute("name","myInput");
我认为您在这里缺少很多相关代码。在什么时候有任何东西被发布到 servlet 上?这段代码在哪里?你是否正在对你的 servlet 进行 AJAX 调用?名称字段为"item1"或"item2"的输入在哪里定义?您是否使用 AJAX 帖子发送一系列项目?到底是怎么回事?
您提供的 JavaScript 函数没有调用服务器,我什至不确定您如何看到打印出的空值。
如果你想看到所有被发送到servlet的参数,为什么不做一个循环来打印出来呢?
for (String name : request.getParameterMap().keySet()) {
System.out.println("Name: " + name + " = " + request.getParameter(name));
}
在数据实际发送到服务器的位置发布其他 JavaScript 函数或相关 HTML 表单,这可能更容易确定问题。
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 如何为动态创建的元素分配唯一的id-Javascript
- 使用Javascript为Pyramid的每个块分配唯一的id
- 为动态创建的元素分配唯一名称
- 具有当前日期的元素的日期,并分配唯一ID
- 分配唯一的id和名称
- 使用全局变量为动态创建的元素分配唯一id和唯一名称
- 如何为一对克隆对象分配唯一的id和href
- 通过find()和each()迭代分配唯一的ID
- 如何分配或附加一个唯一的ID在javascript与行整数从html
- 为angular指令实例分配自定义的唯一id
- 分配,在主索引页上为脚本使用唯一的Wordpress帖子id
- 创建分配唯一项的算法
- 我想为每个用户分配一个唯一的URL-PHP
- 在Jquery中为类的所有元素分配唯一ID
- 如何为每个复选框分配一个唯一的id
- 如何使用jquery/javascript为html中的ID列生成和分配唯一编号
- 如何为以下方案的每个选择框分配唯一 ID
- 在选择时为单选按钮分配唯一id