簡體   English   中英

函數中的JavaScript console.log

[英]JavaScript console.log from within a function

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="login.css">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  <script src="jquery.serializeJSON.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
$("#submit-button").click(function(e)
{
  var username = JSON.serialize($('#username').val().toLowerCase());
  console.log($('#username').val());


});
});
</script>
<div class="login-container">
  <div class="title">Login Form</div>
  <div class="form-fields">
  <form name="login-form" id="login-form" method="POST">
    <input type="text" name="username" placeholder="Username" required></input>
    <input type="password" name="password" placeholder="Password" required></input>
    <input type="submit" value="Log in" id="submit-button"></input>
  </form>
</div>

我試圖在序列化用戶名變量后登錄,但console.log不會從函數內打印任何內容。 在這種情況下進行調試的最佳方法是什么。

將字符串轉換為小寫字母的方法是toLowerCase ,而不是toLowerCaser ,並且字符串上沒有serializeJSON方法。 您將使用JSON.serialize方法:

var username = JSON.serialize($('#username').val().toLowerCase());

要找到類似的錯誤,應在瀏覽器的錯誤日志中查找,它應顯示一條錯誤消息,指出toLowerCaser不是函數。 那應該告訴您,也許不是該方法被調用,而是在文檔中查找它(例如https://developer.mozilla.org/en-US/ )。 修復該問題后, serializeJSON會收到相同的錯誤。

要使用console.log進行調試,您可以拆分各個步驟並逐步檢查結果。 例如:

// check if jQuery found anything
console.log($('#username').length);
// check what the text is
console.log($('#username').val());
// check if toLowerCaser works
console.log($('#username').val().toLowerCaser());
// check if serializeJSON works
console.log($('#username').val().toLowerCaser().serializeJSON());

編輯:

當您還顯示了HTML代碼時,我看到它不包含任何帶有id="username"元素,因此$('#username')將是一個空的jQuery對象。

如果您嘗試console.log($('#username').length); 您將看到它寫出0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM