我声明了一个名为“name”的变量。用户单击表单后,它应调用函数myFunction,该函数将用户键入的值分配给变量名。例如,如果用户键入“John”。网址为localhost:5000 / profile / John。但我得到document.getElementById(“username”)是未定义的。

-let name = "gg";
    //- -function enteringName() {
    //-      - name = document.getElementById("username").value;
    //- -};

    <h1>Log in</h1>
    <form action="/profile/#{name}"  method="POST" id="loginForm" onclick="#{myFunction()}" >
      <label for="username">username:</label><br />
      <input type="text" id="username" name="username"/>
      <br />
      <label for="password">password:</label><br />
      <input type="text" id="password" name="password" /><br /><br />
      <input type="submit" value="Log in" />
      <br />
    </form>
    <p>

      <a href="http://localhost:3000/registration">register here</a>
    </p>
    <script>

function myFunction() {
 -name = document.getElementById("username").value;
}
</script>

最佳答案

试试这个。哈巴狗压痕有一些问题。而且pug只是服务器呈现html,但是在客户端,您应该通过js将名称设置为element。在codepen中测试了此代码,也看看https://codepen.io/aidonline01/pen/rNOwWJY :)

-let name = "gg";
//- -function enteringName() {
//-      - name = document.getElementById("username").value;
//- -};

<h1>Log in 1</h1>
  <form action="/profile/#{name}"  method="POST" id="loginForm" onclick="myFunction()" >
    <label for="username">username:</label><br />
    <input type="text" id="username" name="username"/>
    <br />
    <label for="password">password:</label><br />
    <input type="text" id="password" name="password" /><br /><br />
    <input type="submit" value="Log in" />
    <br />
  </form>
<p>

<a href="http://localhost:3000/registration">register here</a>
</p>
script
  .
    function myFunction() {
      #{name} = document.getElementById("username").value;
      document.getElementById("loginForm").action = `/profile/${#{name}}`;
    }

关于javascript - 在哈巴狗中创建动态网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61470668/

10-10 00:23