Как я могу получить JavaScript на странице, чтобы огонь
На одной из моих страниц cshtml есть javascript, который не срабатывает, каждая функция имеет предупреждение в строке 1, чтобы показать, если она поражена, отладчик тоже не улавливает его.
Моя цель-проверить, что было введено правильно отформатированное электронное письмо. Две функции пытаются это сделать, третья-просто тестовая функция, чтобы попробовать простой вызов.
Источником здесь является продукт View source на firefox:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>VT IdentityServer4</title> <link rel="icon" type="image/x-icon" href="/favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> <link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.css" /> <link rel="stylesheet" href="/css/site.css" /> </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a href="/"> <span class="navbar-brand"> <img src="/icon.png" class="icon-banner"> IdentityServer4 </span> </a> </div> </div> </div> <div class="container body-content"> <form action="/Account/ForgotPassword" enctype="multipart/form-data" method="post"> <div class="panel-body"> <div class="bg-info p-2"><h4>Reset Password</h4></div> <div class="form-group"> <label for="UserMaster_Email">Email</label> <input class="form-control" id="userEmail" type="text" name="UserMaster.Email" value="" /> </div> <div> <h1> Click the button to send a link to the email address provided, please follow it to set a new password</h1> </div> <input id="returnUrl" name="returnUrl" type="hidden" value="/connect/authorize/callback?client_id=TestMVC&redirect_uri=https%3A%2F%2Flocalhost%3A6001%2Fsignin-oidc&response_type=code%20id_token&scope=openid%20profile%20api1%20offline_access&response_mode=form_post&nonce=636971655198350102.NWE0NzZmOWEtY2M5OC00ZjY1LTgxZDQtYmRlYmFjM2Q4YzNiMDZlNGZlYTYtZmVmYS00OGQ0LWExYzUtYTQ1OGFjOTQxNWQ1&state=CfDJ8PEC9PhnSjdGtGv-XdyPnE4sVD_NeakVMhCbPrEa2B0iSvRIlopzw-1Piyf5uqzjvHcBx5c-GyCRCHLxm5zQDgEmG4siDJ0bNev0l0c234qNcEIoo2NVebVdBjt6Aq_1pFx5dlTT0zCC_SQhpgD2j-Y6xdMaS-iRPbN6N8nRxpVajdjNbWSR76VLpa0R5aXQJyc1Fq2qi8i8V688UeUb303FMFodSfu_s95_V-0ck3Nj5OPSbTx6DfDugn5yiOvPJj_4Tj7T0DoHvHNCBY8gVr1Qw4ScdztkXaH5sjB8gpGo0dN3HVZd8CYrL0zMkW5qAm9aI1zA4At_36lL1iwbbRQ&x-client-SKU=ID_NETSTANDARD2_0&x-client-ver=5.3.0.0" /> <div class="panel-footer"> <div class="form-group"> <button class="btn btn-primary" name="button" value="sendLink" id="sendLinkBtn" onclick="emailChanged()">Send Password Reset Link</button> <button class="btn btn-default" name="button" value="cancel" onclick="myFunction()">Cancel</button> </div> </div> </div> <input name="__RequestVerificationToken" type="hidden" value="CfDJ8PEC9PhnSjdGtGv-XdyPnE6FpWkPfrGjWXYXJ-hIvJbveurwqgucguTju-4mETob6dBOzE0PnOGqCJEwE6JTkf7FqOo8thhm_3m5Uvh4tY8WhmH-rbeg0rzjAtIggwXp8dcE3NwKiehtMYWUaayKp0Y" /></form> <script type="text/javascript"> function myFunction() { // var x = document.getElementById("userEmail").innerHTML = "Hello World"; alert("The text has been changed3."); } function emailChanged() { alert("The text has been changed2."); var hasError = false; var emailReg = /^([\w-\.]+@([\w -] +\.)+[\w-]{2,4})?$/; var emailaddressVal = $("#UserMaster.Email").val(); if (emailaddressVal == '') { $("#UserMaster.Email").after('<span class="error">Enter email address.</span>'); hasError = true; } else if (!emailReg.test(emailaddressVal)) { $("#UserMaster.Email").after('<span class="error">Enter a valid email address.</span>'); hasError = true; } if (hasError == true) { return false; } } $(document).ready(function () { $('#sendLinkBtn').click(function () { alert("The text has been changed1."); $(".error").hide(); var hasError = false; var emailReg = /^([\w-\.]+@([\w -] +\.)+[\w-]{2,4})?$/; var emailaddressVal = $("#UserEmail").val(); if (emailaddressVal == '') { $("#UserEmail").after('<span class="error">Enter email address.</span>'); hasError = true; } else if (!emailReg.test(emailaddressVal)) { $("#UserEmail").after('<span class="error">Enter a valid email address.</span>'); hasError = true; } if (hasError == true) { return false; } }); }); </script> </div> <script src="/lib/jquery/jquery.js"></script> <script src="/lib/bootstrap/js/bootstrap.js"></script> </body> </html>
Обычно это не составляет труда. Есть какие-нибудь мысли о том, что я, возможно, пропустил
Что я уже пробовал:
Код, включенный в вопрос, показывает мои различные попытки, и вот один из онлайн-примеров, которым я следовал. https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onclick
Richard Deeming
Ваш скрипт полагается на jQuery, но jQuery не включается до тех пор, пока после ваш скрипт.
Попробуйте переместить jQuery includes над блоком скрипта.