从客户端获取代码隐藏中的输入文本框值
Get input textbox values in the codebehind from the client
我创建了一个JavaScript按钮,它将在客户端浏览器上添加4个文本框和一个文件上传控件。 他们也可以根据需要添加任意数量的这些。
我现在的问题是在提交按钮上,如何遍历这些控件以获取要放入数据库的值?
JavaScript
<script type="text/javascript">
var rownum = 1;
function AddRow() {
var div = document.createElement("div")
var divid = "dv" + rownum
div.setAttribute("ID", divid)
rownum++
var txtFName = document.createElement("input")
txtFName.setAttribute("ID", "txtFName" + rownum)
txtFName.placeholder = "First Name";
txtFName.style.width = "190px";
rownum++
var txtLName = document.createElement("input")
txtLName.setAttribute("ID", "txtLName" + rownum)
txtLName.placeholder = "Last Name";
txtLName.style.width = "190px";
rownum++
var txtEmail = document.createElement("input")
txtEmail.setAttribute("ID", "txtEmail" + rownum)
txtEmail.placeholder = "Email";
txtEmail.style.width = "289px";
rownum++
var txtInst = document.createElement("input")
txtInst.setAttribute("ID", "txtAge" + rownum)
txtInst.placeholder = "Age";
txtInst.style.width = "100px";
rownum++
var _upload = document.createElement("input")
_upload.setAttribute("type", "file")
_upload.setAttribute("ID", "upload" + rownum)
_upload.setAttribute("runat", "server")
_upload.setAttribute("name", "uploads" + rownum)
_upload.style.width = "610px";
rownum++
var btnRemove = document.createElement("input")
btnRemove.type = "button";
btnRemove.setAttribute("onclick", "return RemoveDv('" + divid + "');");
btnRemove.innerText = "Remove";
rownum++
var _pdiv = document.getElementById("ParentDiv")
div.appendChild(document.createElement('br'))
div.appendChild(txtFName)
div.appendChild(txtLName)
div.appendChild(txtEmail)
div.appendChild(document.createElement('br'))
div.appendChild(txtInst)
div.appendChild(document.createElement('br'))
div.appendChild(_upload)
div.appendChild(document.createElement('br'))
div.appendChild(btnRemove)
div.appendChild(document.createElement('br'))
_pdiv.appendChild(div)
}
function RemoveDv(obj) {
var p = document.getElementById("ParentDiv")
var chld = document.getElementById(obj)
p.removeChild(chld)
}
ASP
.aspx<table width="100%" class="pagetext_10">
<tr>
<td colspan="10">
<input type="button" onclick="AddRow();
return false;" value="Add Employees" />
<div id="ParentDiv" style="width:100%;">
</div><br /><br />
</td>
</tr>
</table>
要遍历 Request
对象中的所有值,请尝试:
foreach (string s in Request.Form.Keys )
{
var formValue = Request.Form[s];
}
只要您知道字段前缀,就应该能够识别动态前缀。
如果您有固定的 12 个字段控件,3 个上传控件,而不是使用 JavaScript 创建表单字段,您可以显示/隐藏隐藏字段的服务器控件,那么这些值将在页面生命周期内正常可用。
如果未使用的元素被包装在带有display: none;
的元素中,则它们将不会设置为服务器。
由于您只有 4 个动态字段,因此可以直接从请求中读取它们:
var result1 = Request.Form("txtFName1");
// etc ..
如果可以提交时没有这些字段,请检查空:
if (Request.Form["txtFName1"] != null)
{
// do stuff
}
如果按钮的数量是动态的,只要您也可以将数字提交回去,您应该能够循环。
然后,您需要添加一个按钮来提交表单:
.aspx:
<asp:Button id="Submit" Text="Submit" runat="server" OnClick="Submit_Click" />
代码隐藏:
public void Submit_Click(Object sender, EventArgs e)
{
// ...do stuff...
}
相关文章:
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 使用模拟按键在输入框中自动输入文本
- 如何添加类,同时开始在文本字段中输入文本
- JQuery使用相同的功能自动完成各种输入文本
- 如何设置输入文本框jquery的值
- 输入文本框为空时的阻止按钮asp.网络表单
- 基于单选框更新页眉,选中并选择输入文本
- 将输入文本与某个选项的值相匹配并自动选择
- 如何在 JavaScript 中创建输入文本框
- 如何使用纯Javascript观看输入文本框
- 需要使用javascript获取输入文本,然后将其添加到句子中
- php&js-将电子邮件添加到输入文本中
- 动态启用/禁用来自控制器的输入文本
- .val()不返回输入文本
- 从确认框中预填充输入文本框
- 如何使用JavaScript解析输入文本中给定的数据
- 添加/删除/更改输入文本的部分值
- 根据输入文本按元素排序,AngularJS
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- 如何从Tr重复的输入文本中获取值