首页 > 解决方案 > 如何在输入标签值属性中运行函数

问题描述

我有一个 html 页面,当他想转账时我发送给客户作为响应

response.end(
            ` 
            <!doctype html>
            <html lang="en">
            <head>
                <meta charset="utf-8">
                <title>The Good Server</title>
            </head>
            <body>
                <p>Transfer money to other users with the super safe form which uses the latest HTTP GET method!</p>
                <form action="/money_transfer" method="get">
                    <div class="container">
                        <label for="from"><b>Tranfer from</b></label>
                        <input type="text" value="good_user" name="from" required readonly>
                        <label for="to"><b>Transfer to</b></label>
                        <input type="text" placeholder="User you want to send money to" name="to" required>
                        <label for="sum"><b>Sum to transfer (in full Euros)</b></label>
                        <input type="number" placeholder="Enter a sum" name="sum" required>
                        <input name="csrf_token" type="hidden" value="setCSRFtoken()">
                        <button type="submit">Transfer money</button>
                    </div>
                </form>
            </body>
            </html>
            `
        );

我尝试获取随机生成的令牌并将其设置为输入标签的值,如按钮之前所示:转账。我的 setCSRFtoken 函数还将令牌存储到一个数组中。

const setCSRFtoken = () => {
   var result           = '';
   var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
   var charactersLength = characters.length;
   for ( var i = 0; i < 10; i++ ) {
       result += characters.charAt(Math.floor(Math.random() * charactersLength));
   }
   console.log(result)
   csrfTokens.push(result);
   return result;

从 setCSRFtoken 函数返回的值必须放入输入的 (name=crsf_token) 值中。

问题是目前我无法让函数在页面中运行并返回随机生成的值。我还考虑将值作为参数添加到页面,但不知道如何将其添加到响应中。

<input name="csrf_token" type="hidden" onload="this.value=setCSRF()">

将上面的代码视为修复程序,但它对我不起作用

标签: javascriptnode.js

解决方案


推荐阅读