如何动态地将html元素添加到页面并在asp.net中访问它们? - javascript

美好的一天,

我已经尝试了整整一天的时间,以找出一种使用Visual Studio将元素动态添加到网页并访问其值的方法。我要么使整个事情变得过于复杂,要么变得愚蠢,要么真的没有办法做我想做的事情哈哈。
我正在尝试创建一个页面,该页面应该能够生成可能超过100个以下html项目集:
它基本上是用于创建多项选择测试的问答形式。有一个区域可以键入问题,然后再添加其他文本框即可添加多项选择。还有一个按钮可以向答案区域添加额外的2个文本框(无论它们是创建并添加到表格行的div中还是隐藏,然后在按下按钮时显示出来)。

[问题文本框]

[文本框] [文本框] [文本框] [文本框] [向该行添加其他文本框的按钮(最多仅增加2个)]

[确认按钮以在文本框中提交文本]

[添加上述元素的另一个副本的按钮(最多100个)]

我想创建一个普通的表单(因为这可能是最简单的),但这需要在网络上工作。我知道跟踪所有这些内容可能是一场噩梦,但我想不出另一种选择(嗯,我已经想到了一种替代方法,但它似乎更复杂)。我尝试了以下方法:
我尝试将div添加到表单元格中以添加文本框,但此后我无法访问div。有没有办法做到这一点?如果可以访问使用innerHtml方法创建的元素,则可能会更好,但我无法在线找到任何内容。

QuestionContent.InnerHtml += "<table runat=\"server\" style=\"width: 100 %; \"><tr><td> Question " + _QuestionNum + " </td></tr><tr><td class=\"auto - style1\"><div id=\"divQ"+_QuestioNum+"\"></div></td></tr></table>"; 
//Might have an issue adding an element with runat=server, but this was the only way I could think of extracting a value that is created dynamically in C#.
                    ((System.Web.UI.HtmlControls.HtmlGenericControl)mainPanel.FindControl("divQ1")).InnerHtml = "<asp:TextBox ID=\"txtChoice1\" runat=\"server\">Choice1</asp:TextBox>"; 
    //Here I try to access the div created above. Unrelated: Also tried with a normal textbox, but I realise that creating an asp textbox here might cause issues.

我似乎无法访问在C#中创建的任何内容。有没有更好的办法?放弃这个想法后,我尝试使用javascript创建元素。我仍然需要找出是否可以使用javascript将值传递给C#,但是现在我遇到了另一个问题。只要运行以下代码,这些元素就会出现,但立即消失。这是asp.net的问题吗?谷歌的结果不是很有帮助。

function addQuestion() {
if (numQuestions == limit) {
    alert('Maximum question limit reached. Consider breaking this test up into multiple tests.');
}
else {
    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', 'divQ' + numQuestions);
    newdiv.innerHTML = '<table><tr><td> Question' + numQuestions + '</td></tr><tr><td>';
    for(var i=0;i<6;i++){
        newdiv.innerHTML += "<input type=\"text\" name=\"textBox"+i+"\">";
    }
    newdiv.innerHTML += '</td></tr></table>';
    numQuestions++;
    document.getElementById('divQuestionContent').appendChild(newdiv);       
}

}

但是,如果可以的话,我想避免使用javascript。有没有更好的方法来创建此页面?我做错什么了吗?任何帮助将不胜感激。

javascript大神给出的解决方案

我认为您是混合服务器和客户端代码。

1st)使用您的第一个已知必要字段创建html表单

2)Javascript部分。用户向表单中添加字段(需要在Javascript客户端完成),请检查以下答案:
How add new hidden input fields to the form on submit

3)C#部分。在表单请求时,您需要遍历所有request.form项,因为您不知道它们有多少。可以使用以下方法完成此操作:

StringBuilder s = new StringBuilder();
foreach (string key in Request.Form.Keys)
{
    s.AppendLine(key + ": " + Request.Form[key]);
}
string formData = s.ToString();

PHP stringID无法从回显中读入onclick - javascript

我有一个音频播放器,可以在HTML中正常工作,但是当我从PHP回显调用时,似乎没有得到div ID的名称,因此它无法播放我的音频。这是我的代码:// Show audio if ($sObj->get('audio') != null) { $sAudio = $sObj->get('audio'); $a…

在php中单击按钮添加表行并设置字段值 - javascript

我有一个表单,必须在单击按钮时添加表行。这是我必须动态添加的表行:(addProdToGroup.php)<tr style="text-align: center;" id="products"> <td><?php $j ?></td> <td><s…

如果复选框切换复选框已选中,则在切换div中输入必填字段 - javascript

我使用脚本用JavaScript切换了一些div。如果要选中复选框以显示toogle div,我想在toogle div中设置一些“必填”输入字段。有人能弄清楚吗?那是工作吗?function show(id) { if(document.getElementById) { var mydiv = document.getElementById(id); m…

淘汰赛在金字塔中的行为不正确 - javascript

我正在使用Pyramid构建一个Webapp,但是Knockout的行为有所不同。我有一个表格: <div data-bind="with: $root.itemToAdd" style="display: none;"> <form data-bind="submit: $root.add…

将简单的javascript代码转换为c# - javascript

昨天我在这里问了一个问题。使用javascript和html解决方案很简单前一阵子我打算什么是操纵html来执行javascript中的任务但是我改变了主意,将javascript代码重写为c#这是输入<Abstract> <Heading>Abstract</Heading> <Para TextBreak=�…