ASP.NETWebForm:动态添加HTML和javascript
我需要一个ASP.net应用程序,这是唯一一种“页面显示器”的内容是来自一个API。因此,我选择ASP.net Webform并尝试了以下操作:ASP.NETWebForm:动态添加HTML和javascript,javascript,asp.net,Javascript,Asp.net,我需要一个ASP.net应用程序,这是唯一一种“页面显示器”的内容是来自一个API。因此,我选择ASP.net Webform并尝试了以下操作: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="PMLetterAcceptance.WebForm1" %> <!DOCTYPE
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="PMLetterAcceptance.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:Literal runat="server" id="JavaScript"></asp:Literal>
</head>
<body>
<form id="letterform" runat="server">
<div>
<%= pageContent %>
</div>
</form>
</body>
html内容和脚本加载正确,但我无法访问javascript中的DOM元素。javascript看起来是这样的
(function()
{
function processForm(e)
{
... // Here I want to do some stuff before sending the form
}
let form = document.getElementById('letterform');
if (form.attachEvent)
form.attachEvent("submit", processForm);
else
form.addEventListener("submit", processForm);
})();
不,我得到错误“表单为空”。对我来说,javascript似乎是在DOM准备就绪之前执行的。但是我怎样才能改变它,使它像预期的那样工作呢?试着把JS(文字)放在页面底部,在结束正文标记之前。这样,HTML将在JS尝试查找元素之前加载。Odd,因为页面上已经有了letterform。你能试着把JS(文字)放在页面底部,在结束正文标签之前吗?JS是否包含脚本标记?在我看来,您的javascript中有一个错误。你的代码是为在浏览器到达行时执行而设计的。哦,天哪。有时候这很容易。把它放在身体的末端很好。谢谢你的回答。请你投赞成票好吗?事实上,我并不是在说重点,只是没有办法知道一个问题已经在评论中得到了回答。检查那些似乎没有答案但却有答案的问题让我有点发疯。
(function()
{
function processForm(e)
{
... // Here I want to do some stuff before sending the form
}
let form = document.getElementById('letterform');
if (form.attachEvent)
form.attachEvent("submit", processForm);
else
form.addEventListener("submit", processForm);
})();