2

我有以下脚本构建这样的表单:

var sHTML = "";
sHTML += "<form id='formScore' method='post' action='q_process3.aspx’&gt;";
sHTML += " ";
sHTML += "<input type='hidden' id='Title' name='Title' value= " + title + ">";
sHTML += "<input type='hidden' id='Result' name='Result' value= " + resultstatus + ">";
sHTML += "<input type='hidden' id='ScorePctg' name='ScorePctg' value= " + scorepctg + ">";
sHTML += "<input type='hidden' id='ScorePoints' name='ScorePoints' value= " + scorepoints + ">";
sHTML += "<input type='hidden' id='PassingPctg' name='PassingPctg' value= " + passingpctg + ">";
sHTML += "<input type='hidden' id='PassingPoints' name='PassingPoints' value= " + passingpoints + ">";
sHTML += "<br><input type='submit'><br>";
sHTML += "<form>";

document.getElementById("divEmail").innerHTML = sHTML;
document.getElementById("formScore").submit();

然而,当这个提交时,它指向的动作/url是:
q_process3.aspx'%3E%20%3Cinput%20type=
所以看起来它立即将第一个输入标签连接到表单元素的动作属性上细绳。我究竟做错了什么?还是俯瞰?我知道这很简单。

4

2 回答 2

1

在您的代码拼写错误中

sHTML += "<form id='formScore' method='post' action='q_process3.aspx’&gt;";
                                                    ^               ^
sHTML += "<form>"; // ought to be </form>

是否有理由立即提交表格?

document.getElementById("formScore").submit();
于 2013-04-09T16:24:09.527 回答
1

如果我获取您的代码并在 jsFiddle 中运行它,我会得到一个冗长的、损坏的表单操作。

如果我用普通的旧刻度引号替换您操作的结束智能引号(我不确定正确的命名),则表单操作设置正确。

将您的表单标签字符串更改为:

sHTML += "<form id='formScore' method='post' action='q_process3.aspx'>";

那应该这样做。

于 2013-04-09T16:28:10.533 回答