JavaScriptをHTMLファイルにリンクしたので、このボタンをクリックしたときになぜsetUser
という関数が呼び出されないのか分かりません。onclickイベントを外部のJavaScript関数にリンクするにはどうすればよいですか?
<!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
を定義していないではJavaScriptファイル内
function setUser(){ // set username event listener
name = document.getElementById('name').value;
age = document.getElementById('age').value;
gender = document.getElementById('gender').value;
//send user name to server
socket.emit('setUser', {name:name , age:age, gender:gender});
};
コンソールにエラーがありますか? – mrlew
関数が呼び出されていないことは確かですか?関数の中に 'console.log()'ステートメントを追加し、ステートメントをコンソールに出力するかどうかを確認してください。また、HTMLコードの一部を提供してください。 –
@RitikSaxena残りのHTMLコードを追加しました。また、console.log()ステートメントを追加しました。ボタンをクリックするとコンソールに何も印刷されません。 –