Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NETWebForm:动态添加HTML和javascript_Javascript_Asp.net - Fatal编程技术网

ASP.NETWebForm:动态添加HTML和javascript

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

我需要一个ASP.net应用程序,这是唯一一种“页面显示器”的内容是来自一个API。因此,我选择ASP.net Webform并尝试了以下操作:

<%@ 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);
})();