未捕获的ReferenceError:HTMLInputElement.onclick中未定义<function>

时间:2017-04-04 14:03:36

标签: javascript

我试图从我的html页面调用一个简单的javascript函数。 javascript函数将使用“lib.js”文件解密,并且会发出相同的警报。

未捕获的ReferenceError:未定义decryptfun     在HTMLInputElement.onclick(test.html:18)

以下是我使用的唯一文件(以及其他相关库文件)。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="lib.js">
function decryptfun() {
    var pass = "hjubjbjhdgyuwj";
    var encrtoken = "abcdefghijklmn";

    var p = lib.decrypt(encrtoken, atob(pass));
    }
    alert(p);
</script>
</head>

<body>
<h1>Decrypt Operation</h1>
<input type="button" onclick="decryptfun()" value="Click">
</body>
</html>

我尝试在Stackoverflow上为同一类型的问题提供其他建议,但我没有成功。任何人都可以帮助我找出问题的原因吗?

3 个答案:

答案 0 :(得分:5)

您的错误是因为您已在内部定义了您的功能:

<script type="text/javascript" src="lib.js">

正确的方法是首先关闭该脚本标记:

<script type="text/javascript" src="lib.js"></script>

然后再次定义脚本标记以定义函数,如下所示:

<script>
function(){
    //body of function
};
</script>

<script type="text/javascript" src="lib.js"></script>
<script>
  function decryptfun() {
    var pass = "hjubjbjhdgyuwj";
    var encrtoken = "abcdefghijklmn";

    //var p = lib.decrypt(encrtoken, atob(pass)); //USE THIS IN YOUR CASE
    var p = "test"; //just for example
    alert(p);
  }
</script>
<h1>Decrypt Operation</h1>
<input type="button" onclick="decryptfun()" value="Click">

答案 1 :(得分:0)

我的问题是我在里面定义了我的函数

<script>
    $(document).ready(function () {
        function myFunction() ....
    })
</script>

script 标签中直接定义时效果很好

<script>
     function myFunction() ....
</script>

答案 2 :(得分:-1)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Person.aspx.cs" Inherits="JqueryDemo1.Person" %>

<!DOCTYPE html>`enter code here`

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <script src="Scripts/jquery-3.5.1.min.js"></script>

    <script type="text/javascript">

        function SubmitData() {
            $.ajax({
                url: 'Person.aspx/InsertData',
                type: 'post',
                contentType: 'application/json;charset=utf-8',
                dataType: 'json',
                data: "{Name:'" + $('#txtname').val() + "', Address:'" + $('#txtaddress').val() + "', Age:'" + $('#txtage').val() + "'}",
                success: function () {
                    alert("Data inserted successfully");
                },

                error: function () {
                    alert("insert errorr");
                }
            });
    </script>

    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td>Name:</td>
                    <td>
                        <input type="text" id="txtname" /></td>
                </tr>
                <tr>
                    <td>Address:</td>
                    <td>
                        <input type="text" id="txtaddress" /></td>
                </tr>
                <tr>
                    <td>Age:</td>
                    <td>
                        <input type="text" id="txtage" /></td>
                </tr>

                <tr>
                    <td>
                        <input type="button" id="btnsave" value="Submit" onclick="SubmitData()" />
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>