Chcę usunąć tło elementu wejściowego w zdarzeniu wejściowym (dowolny znak), ale to nie działa

$(document).ready(function() {
  $("#username").css("background-color", "red");
  $("#password").css("background-color", "red");
  $("#username").on("input", function() {
    $(this).css("background-color", "none");

  $("#password").on("input", function() {
    $(this).css("background-color", "none");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="username" />
<input type="password" id="password" />
-2
kurobajzer 19 grudzień 2019, 20:08
"#username jest nieprawidłowym literałem ciągu, brakuje w nim cudzysłowów zamykających ". Masz wiele błędów takich jak ten.
 – 
Titus
19 grudzień 2019, 20:09
Zapomniałem go zamknąć, ale nawet to się nie uruchamia
 – 
kurobajzer
19 grudzień 2019, 20:10
1
Oprócz brakujących cytatów; nie zamykasz swoich bloków funkcyjnych
 – 
Turnip
19 grudzień 2019, 20:13
2
Ponadto nie sądzę, że none jest prawidłową wartością dla background-color, spróbuj initial.
 – 
Titus
19 grudzień 2019, 20:14
1) none nie jest prawidłowym kolorem tła. Spróbuj zamiast tego transparent 2) nie zagnieżdżaj obsługi zdarzeń.
 – 
Rory McCrossan
19 grudzień 2019, 20:14

2 odpowiedzi

background-color:none nie jest prawidłowym css. Również powiązanie zdarzenia hasła znajdowało się w nazwie użytkownika.

$(document).ready(function() {
  $("#username").css("background-color", "red");
  $("#password").css("background-color", "red");
  $("#username").on("input", function() {
    $(this).css("background-color", "transparent");
  });
 $("#password").on("input", function() {
      $(this).css("background-color", "transparent");
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="username" />
<input type="password" id="password" />
0
Sean T 19 grudzień 2019, 20:17

Masz kilka błędów składniowych, w których zapomniałeś zamknąć funkcji przekazanych do on. none nie jest również ważne dla background-color, użycie initial jest prawdopodobnie tym, czego chciałeś.

$(document).ready(function() {
  $("#username").css("background-color", "red");
  $("#password").css("background-color", "red");
  $("#username").on("input", function() {
    $(this).css("background-color", "initial");
  });
  $("#password").on("input", function() {
    $(this).css("background-color", "initial");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="username" />
<input type="password" id="password" />
0
matthew-e-brown 19 grudzień 2019, 20:18