我正在创建一个有多个答案的调查问题。
有一个button
来克隆现有的textbox
。
但是,如何获得克隆textbox
的值,特别是来自代码隐藏。
这是我的代码:
function generateRow() {
if (totalans == 9) {
$('#<%= label2.ClientID %>').html('<b>Maximum of 10 answers per questions reached</b>');
}
else {
$("#ans").clone().prependTo("#ans2");
totalans = totalans + 1;
}
// #ans是一个部门。
是的,请有人帮助我。 我试着去拿它。// c#代码隐藏
String bla = tb_ans.ToString();
String[] splitAnswer = bla.Split(',');
int a = splitAnswer.Length;
// tb_ans是我的文本框ID。
我尝试使用数组,但似乎只有在转储其他数据时才使用第一个textbox
值。
答案 0 :(得分:0)
这里有两个选项可以立即弹出:
选项一:代替克隆,生成服务器端然后隐藏直到需要 - 更改显示以在需要时显示它们。
选项二:通过ajax将文本框克隆的值发送到服务器。
就个人而言,我会选择第二种方式,因为你可以克隆几乎无限数量的盒子,然后将值发送到服务器来处理 - 从你的代码中你可以使用它。
答案 1 :(得分:0)
当您提交任何表单时,元素值将根据dom中的名称发布,因此当您克隆文本框时,如果您想要服务器端的所有文本框值,则应更改名称并提供唯一名称。
答案 2 :(得分:0)
您需要在克隆上设置唯一ID,然后您可以通过javascript访问它。如果您还希望将其作为表单的一部分唯一地提交给您的服务器,那么也可以在其上设置唯一的名称。
$("#ans").clone().attr({id: "ansClone2", name: "ansClone2"}).prependTo("#ans2");
答案 3 :(得分:0)
在查看您的评论后,我修改了我的答案:
function generateRow() {
if (totalans == 9) {
$('#<%= label2.ClientID %>').html('<b>Maximum of 10 answers per questions reached</b>');
}
else {
totalans = totalans + 1; // same as totalans++;
$("#ans").clone().attr({id: "ans_clone_" + totalans, name: "ans_clone_" + totalans}).prependTo("#ans2");
// then you can loop through each input using the totalans variable.
}