使用JavaScript函数return语句打开新页面

时间:2018-04-01 17:58:19

标签: javascript html

我正在尝试构建一个使用Adyen Encryption for Credit Cards的网页。我有一个表格,我要求提供信用卡数据,当用户按下submit时,它会调用JavaScript函数。现在我想将该页面重定向到另一个页面,该页面显示JavaScript函数返回的值。我不知道是否有一种简单的方法可以做到。

index.html 代码如下:

<!DOCTYPE html>
<html>

<head>
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="https://my.tidal.com/assets/javascripts/chosen.jquery.min.js"></script>
    <script src="https://my.tidal.com/assets/javascripts/payment/adyen.js"></script>
    <script src="https://my.tidal.com/assets/javascripts/payment/brazil-validate.js"></script>

    <script>
        function test(name, card, expMonth, expYear, cvc) {     

            var adyenPubKey = "10001|DCDD8889161843FF0CC8D0D904168E5B4ED5B529C685413F4F8087584F507C5158551B521B9226F7C24CAE3F9FF4B5721F39D23F1E706D3F27A4680C5A2F2B4714C1530BC1EE410B503F9487AF0F047004F4F5DA2614AF3955C25C36BA3881907063742C7687D8516176AD67570A5F0DFA682AC2B7DAD055CE00A68283B77C731E35F004A1D3FE72CE3AE52C3FA8A0E8A63C8D903E00B37DA6760C8C104332FEDD762D4BA8BDB9781C5DDF7E94E0D81529A7C01A2094E8240FB3C24C1E687AD2304A4346EBD82B5DF983806F57B2E0865143C8FEE568A6915A71044A707693C51112B80E2EC665194FD1F8FE362EF1479CCF938DDACFE9BEA56B530E81D567B3";

            var options = {};

            var cseInstance = adyen.encrypt.createEncryption(adyenPubKey, options);

            var generationTime = new Date().toISOString();  

            var cardData = {
                number : card,
                cvc : cvc,
                holderName : name,
                expiryMonth : expMonth,
                expiryYear : (expYear.length === 2) ? '20' + expYear : expYear,
                generationtime : generationTime
            };

            return cseInstance.encrypt(cardData);
        }
    </script>
</head>

<body>
    <form onsubmit="return test(document.getElementById('holderName').value,document.getElementById('number').value,document.getElementById('expiryMonth').value,document.getElementById('expiryYear').value,document.getElementById('cvc').value)" method="post">
        <input type="text" name="holderName" id="holderName" required>
        <br><br>
        <input type="text" id="number" pattern="[0-9]{16}" required>
        <br><br>
        <input type="text" id="expiryMonth" pattern="[0-9]{2}" required>
        <input type="text" id="expiryYear" pattern="[0-9]{4}" required>
        <br><br>
        <input type="text" id="cvc" pattern="[0-9]{3}" required>
        <br><br>
        <input type="submit" value="Enviar">
    </form> 
</body>

</html>

1 个答案:

答案 0 :(得分:0)

我不确定您的特定用例 - 但如果您想重定向到新页面(或从服务器请求新页面)并将任何信息转发到新页面 - 您必须发送数据到服务器。然后,服务器只能发回您想要显示的特定信息。 (考虑到数据的性质,请确保使用HTTPS。)

如果这是单页应用程序,那么您可以简单地隐藏表单并加载当前页面上的下一个“屏幕”。这样您就可以重复使用表单中的内存结果。只需将其存储在可访问范围的变量中即可。

另一个选择可能是使用本地存储,但考虑到这是敏感的信用卡信息,我会建议不要加密或不加密。