js动态添加文本框,后台取值,还有从数据库取出来给文本赋值 大神们帮帮我吧,整晕了,真不会了··求代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1>js动态添加文本框,2>后台取值,3>还有从数据库取出来给文本赋值1和3都没问题,只有第2条是不可能实现的后台无法识别前台动态生成的控件!所以,还是重新设计你的解决方案吧,解决一个需求,可以有很多种解决方案,不要在一颗树上吊死了。。 js添加的文本框赋值后,再通过js将值放到隐藏域中,隐藏域是服务器端的,这样在后台就可以取值了。 <script> var num=1;function AddInput(){ var str=""; str+="<input type=\"text\" id=\"tel"+num+"\">"; window.dvInput.innerHTML+=str; num++;}function getall(){for(i=1;i<num;i++){alert(document.getElementById('tel' + num).value); document.getElementById("hidValue").value += document.getElementById('tel' + num).value+"|";} alert(document.getElementById("hidValue").value);} </script> <input id="Button2" type="button" onclick="AddInput();" value="添加" /> <asp:Button ID="Button1" runat="server" OnClientClick=" getall();" Text="提交" /> <div id="dvInput"> </div> <input type="hidden" id="hidValue" /> 你会js动态添加控件,那会不会js提交保存数据呢?为什么一定要后台获取前台动态生成的标签的值呢........ <script> var num=1;function AddInput(){ var str=""; str+="<input type=\"text\" id=\"tel"+num+"\">"; window.dvInput.innerHTML+=str; num++;}function getall(){for(i=1;i<num;i++){ document.getElementById("hidValue").value += document.getElementById('tel' + i).value+"|";} alert(document.getElementById("hidValue").value);} </script> <input id="Button2" type="button" onclick="AddInput();" value="添加" /> <asp:Button ID="Button1" runat="server" OnClientClick=" getall();" Text="提交" OnClick="Button1_Click" /> <div id="dvInput"> </div> <input type="hidden" id="hidValue" /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 那js怎么保存数据到数据库啊?没试过啊~~求指教,我是.net啊 你在前台用JS动态添加的文本框设置一个name属性,然后提交的时候到后台用Request.Form["你的动态控件name"]就可以实现了 你的代码基本上是正确的,只是有些细节的地方没注意到,导致错误。现已帮你把代码调试好,供参考。可仔细对照一下,发现问题。web页面:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="addinput.aspx.cs" Inherits="ServerSentEvents.test.addinput" %><!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 runat="server"><title></title><script language="javascript" type="text/javascript"> var num = 1; function AddInput() { var str = ""; str += "<input type=\"text\" id=\"tel" + num + "\"><br/>"; document.getElementById("dvInput").innerHTML += str; num++; } function getall() { document.getElementById("hidValue").value = ""; for (i = 1; i < num; i++) { if (i < num - 1) { document.getElementById("hidValue").value += document.getElementById('tel' + i).value + "|"; } else { document.getElementById("hidValue").value += document.getElementById('tel' + i).value; } } } </script></head><body><form id="form1" runat="server"> <input id="Button2" type="button" onclick="AddInput();" value="添加" /> <p> <div id="dvInput"></div></p> <input type="hidden" id="hidValue" runat="server" /> <p> <asp:Button ID="Button1" onclientclick="getall()" runat="server" onclick="Button1_Click" Text="提交" /> </p></form></body></html>.cs:using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace ServerSentEvents.test{ public partial class addinput : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Response.Write(this.hidValue.Value); } }} js提交数据,就是ajax提交数据,网上随便查查,都是一堆堆的说明和例子,目前AJAX应用几乎不分平台,只要是web程序都可以用 <script> var num=1;function AddInput(){ var str=""; str+="<input type=\"text\" name ="tel" id=\"tel"+num+"\">"; window.dvInput.innerHTML+=str; num++;}</script> <input id="Button2" type="button" onclick="AddInput();" value="添加" /> <asp:Button ID="Button1" onclick="Button1_Click" runat="server" Text="提交" /> <div id="dvInput"> </div>protected void Button1_Click(object sender, EventArgs e){ Response.Write(string.Join("|", Request.Form.GetValues("tel")));} 你传一个数组参数 用ajax或者直接用服务器控件后台获取不是很快么 1和3他们说能解决就用他们的方法吧。。关于第二。你在生成文本框的时候<input id="txtTmpxxxxx" style="textbox" />POST到后台,后台可以通过Request.Form["txtTmpxxxxx"]来获取。当你不知道key名字的时候。你可以通过NameValueCollection来获取。 既然是后台输出控件 在赋值 在保存,首先你的思路要搞懂,后台可以往前台输出字符串,这个应该知道吧,在后台定义一个全局字符串, public string Str = ""; protected void Page_Load(object sender, EventArgs e) { //这里写个方法 给Str字符串赋值,赋值的东西就是 str+="<input id=\"Text1\" value=\""+你后台去的值记得这里一次性初始化+"\" name=\"保持一致\" type=\"text\ />"; }前台这样显示到你要显示的地方<%=Str%>接收时 这样string t=Request["这里写name"];t应该是按;隔开的字符串,自己分解在添加就好了 关于动态创建多个Gridview、并且绑定数据列 请高手能不能解说下面,这是代表什么意思啊 怎么执行button的posturl啊 profile判断用户不同的问题 调试的时候,出现网站页面无法显示? 页面间传递数据的问题 ASP.NET+SQL SERVER2005连接数据库怎么都连不上,一直报'SA'登陆失败 数据库循环读入问题 求解决方案或思路:关于合法用户,内详。 js文件上传及删除 疑难问题column 'xxx' not found in table google浏览器iframe里面嵌入一个其它站点的页面,页面的锚点点击会失效
2>后台取值,
3>还有从数据库取出来给文本赋值1和3都没问题,
只有第2条是不可能实现的后台无法识别前台动态生成的控件!所以,还是重新设计你的解决方案吧,
解决一个需求,可以有很多种解决方案,
不要在一颗树上吊死了。。
function AddInput()
{
var str="";
str+="<input type=\"text\" id=\"tel"+num+"\">";
window.dvInput.innerHTML+=str;
num++;
}function getall()
{
for(i=1;i<num;i++)
{
alert(document.getElementById('tel' + num).value);
document.getElementById("hidValue").value += document.getElementById('tel' + num).value+"|";}
alert(document.getElementById("hidValue").value);
} </script> <input id="Button2" type="button" onclick="AddInput();" value="添加" />
<asp:Button ID="Button1" runat="server" OnClientClick=" getall();" Text="提交" />
<div id="dvInput">
</div>
<input type="hidden" id="hidValue" />
为什么一定要后台获取前台动态生成的标签的值呢........
function AddInput()
{
var str="";
str+="<input type=\"text\" id=\"tel"+num+"\">";
window.dvInput.innerHTML+=str; num++;
}function getall()
{
for(i=1;i<num;i++)
{
document.getElementById("hidValue").value += document.getElementById('tel' + i).value+"|";}
alert(document.getElementById("hidValue").value);
} </script> <input id="Button2" type="button" onclick="AddInput();" value="添加" />
<asp:Button ID="Button1" runat="server" OnClientClick=" getall();" Text="提交" OnClick="Button1_Click" />
<div id="dvInput">
</div>
<input type="hidden" id="hidValue" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
现已帮你把代码调试好,供参考。可仔细对照一下,发现问题。web页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="addinput.aspx.cs" Inherits="ServerSentEvents.test.addinput" %><!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 runat="server">
<title></title>
<script language="javascript" type="text/javascript"> var num = 1;
function AddInput() {
var str = "";
str += "<input type=\"text\" id=\"tel" + num + "\"><br/>";
document.getElementById("dvInput").innerHTML += str;
num++;
} function getall() {
document.getElementById("hidValue").value = "";
for (i = 1; i < num; i++) {
if (i < num - 1) {
document.getElementById("hidValue").value += document.getElementById('tel' + i).value + "|";
}
else {
document.getElementById("hidValue").value += document.getElementById('tel' + i).value;
}
}
} </script></head>
<body>
<form id="form1" runat="server">
<input id="Button2" type="button" onclick="AddInput();" value="添加" />
<p>
<div id="dvInput"></div>
</p>
<input type="hidden" id="hidValue" runat="server" />
<p>
<asp:Button ID="Button1" onclientclick="getall()" runat="server" onclick="Button1_Click" Text="提交" />
</p>
</form>
</body>
</html>
.cs:using System;
using System.Collections.Generic;using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace ServerSentEvents.test
{
public partial class addinput : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(this.hidValue.Value);
}
}
}
js提交数据,
就是ajax提交数据,
网上随便查查,都是一堆堆的说明和例子,
目前AJAX应用几乎不分平台,
只要是web程序都可以用
var num=1;
function AddInput()
{
var str="";
str+="<input type=\"text\" name ="tel" id=\"tel"+num+"\">";
window.dvInput.innerHTML+=str;
num++;
}
</script> <input id="Button2" type="button" onclick="AddInput();" value="添加" />
<asp:Button ID="Button1" onclick="Button1_Click" runat="server" Text="提交" />
<div id="dvInput">
</div>
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(string.Join("|", Request.Form.GetValues("tel")));
}
关于第二。
你在生成文本框的时候
<input id="txtTmpxxxxx" style="textbox" />POST到后台,后台可以通过
Request.Form["txtTmpxxxxx"]来获取。
当你不知道key名字的时候。你可以通过NameValueCollection来获取。
在后台定义一个全局字符串,
public string Str = "";
protected void Page_Load(object sender, EventArgs e)
{
//这里写个方法 给Str字符串赋值,赋值的东西就是
str+="<input id=\"Text1\" value=\""+你后台去的值记得这里一次性初始化+"\" name=\"保持一致\" type=\"text\ />";
}前台这样显示到你要显示的地方
<%=Str%>接收时 这样
string t=Request["这里写name"];
t应该是按;隔开的字符串,自己分解在添加就好了