如何将onclick事件链接到外部javascript函数?

如何将onclick事件链接到外部javascript函数?,javascript,Javascript,我将JavaScript链接到HTML文件,因此我不确定单击此按钮时为什么没有调用函数setUser <!DOCTYPE html> <html> <head> <title>Chat Demo</title> <link type="text/css" rel="stylesheet" href="client_style.css"/> </head> <script src="/soc

我将JavaScript链接到HTML文件,因此我不确定单击此按钮时为什么没有调用函数
setUser

<!DOCTYPE html>
<html>
<head>
    <title>Chat Demo</title>
    <link type="text/css" rel="stylesheet" href="client_style.css"/>
</head>

<script src="/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script> 

<body>
    <h1 class = "text"> THE LEMON LAW </h1>
    <div id="error-container" ></div>
    <div style="text-align:center">
    <ul style="list-style-type: none;" >
        <li><input id="name" type="text" name="name" value="" placeholder="Enter your Name!" ></li>
        <li><input id="age" type="text" name="age" value="" placeholder="Enter your Age!" ></li>
        <li><input id="gender" type="text" name="gender" value="" placeholder="Enter your Gender!" ></li>
    </ul>
    <button type="button" name="button" onclick="setUser()">Start chating!</button>
    </div>
    <script type="text/javascript" src="/public/chat.js"></script>

</body>
</html>

问题是您没有在客户端代码中定义
socket

试试这个

html文件

//注意,我已经为
socket.io
jquery
使用了联机路径。你不需要使用它们。您可以继续使用自己的
参考资料

<!DOCTYPE html>
<html>
<head>
    <title>Chat Demo</title>
    <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
    <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="new.js"></script>
</head>

<body>
<h1 class = "text"> THE LEMON LAW </h1>
    <div id="error-container" ></div>
    <div style="text-align:center">
    <ul style="list-style-type: none;" >
        <li><input id="name" type="text" name="name" value="" placeholder="Enter your Name!" ></li>
        <li><input id="age" type="text" name="age" value="" placeholder="Enter your Age!" ></li>
        <li><input id="gender" type="text" name="gender" value="" placeholder="Enter your Gender!" ></li>
    </ul>
    <button type="button" name="button" onclick="setUser()">Start chating!</button>
    </div>
</body>
</html>
函数被调用,套接字尝试连接到主机。在定义
socket
时必须确保。我已连接到由Apache服务器配置的
localhost

定义套接字的标准方法如下:

    var socket = io.connect('http://localhost:8090');
//io is a global variable and hence no need to define it.

这里请注意,我们还定义了端口号。
8090
仅用作示例

问题是您没有在客户端代码中定义
socket

试试这个

html文件

//注意,我已经为
socket.io
jquery
使用了联机路径。你不需要使用它们。您可以继续使用自己的
参考资料

<!DOCTYPE html>
<html>
<head>
    <title>Chat Demo</title>
    <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
    <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="new.js"></script>
</head>

<body>
<h1 class = "text"> THE LEMON LAW </h1>
    <div id="error-container" ></div>
    <div style="text-align:center">
    <ul style="list-style-type: none;" >
        <li><input id="name" type="text" name="name" value="" placeholder="Enter your Name!" ></li>
        <li><input id="age" type="text" name="age" value="" placeholder="Enter your Age!" ></li>
        <li><input id="gender" type="text" name="gender" value="" placeholder="Enter your Gender!" ></li>
    </ul>
    <button type="button" name="button" onclick="setUser()">Start chating!</button>
    </div>
</body>
</html>
函数被调用,套接字尝试连接到主机。在定义
socket
时必须确保。我已连接到由Apache服务器配置的
localhost

定义套接字的标准方法如下:

    var socket = io.connect('http://localhost:8090');
//io is a global variable and hence no need to define it.

这里注意,我们还定义了端口号。
8090
仅用作示例

控制台中有错误吗?您确定没有调用该函数吗?在函数中添加
console.log()
语句,查看是否将该语句打印到控制台。另外,请提供更多的HTML代码。@RitikSaxena我已经添加了其余的HTML代码,我还添加了一个console.log()语句,当我单击按钮时,控制台中没有任何内容。为我工作:@MartinGuo是的,
console.log()
对我也适用。console中有错误吗?您确定没有调用该函数吗?在函数中添加
console.log()
语句,查看是否将该语句打印到控制台。另外,请提供更多的HTML代码。@RitikSaxena我已经添加了其余的HTML代码,我还添加了一个console.log()语句,当我单击按钮时,控制台上没有打印任何内容。为我工作:@MartinGuo是的,
console.log()
也适用于我。