[英]Javascript client-side validation does not work ASP.Net
我在具有兩個文本框的母版頁中有一個Web窗體,並且在將一些數據保存到數據庫之前,我試圖驗證文本框。
如果我在簡單的應用程序(例如簡單的Login)中測試Javascript代碼,它就可以工作。 但是,當我將其用於我的應用程序時,我將無法使用。 它只是將空白空間保存到數據庫。
我不知道為什么JS代碼不起作用,我也不知道該怎么辦。
這是我的一些頁面代碼:
</head>
<body>
<form id="form1" class="contact-form text-right">
<section class="contact-area" id="contact">
<div class="container-fluid">
<div class="row align-items-center d-flex justify-content-start">
<div class="col-lg-6 col-md-12 contact-left no-padding">
<div>
<%-- tabla aqui --%>
<table style="width: 100%;">
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</div>
</div>
<div class="col-lg-4 col-md-12 pt-100 pb-100">
<asp:Label runat="server" ID="lblFecha" Text=""></asp:Label>
<asp:Label runat="server" ID="lblIDUsuario" visible="false" Text=""></asp:Label>
<asp:Label runat="server" ID="lblUsuario" Text=""></asp:Label>
<asp:TextBox ID="txtID" visible="true" class="common-input mt-10" type="numeric" readonly="false" runat="server"></asp:TextBox>
<asp:TextBox ID="txtTitulo" placeholder="Ingrese el título" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Ingrese el título'" class="common-input mt-10" type="text" runat="server"></asp:TextBox>
<textarea id="txtContenido" style="resize:none;" cols="20" rows="5" placeholder="Ingrese el contenido" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Ingrese el contenido'" class="common-input mt-10" type="text" runat="server"></textarea>
<asp:Button ID="btnGuardar" OnClientClick="return performCheck();" OnClick="btnGuardar_Click" runat="server" Text="Guardar" class="primary-btn mt-20"></asp:Button>
<asp:Button ID="btnActualizar" OnClientClick="return performCheck();" onClick="btnActualizar_Click" runat="server" Text="Actualizar" class="primary-btn mt-20"></asp:Button>
<asp:Label ID="lblError" runat="server" Text="" ForeColor="Red"></asp:Label>
<div class="alert-msg">
</div>
</div>
</div>
</div>
</section>
</form>
<script type="text/javascript">
function performCheck() {
if (document.getElementById("txtTitulo").value == '') {
alert(" Debe Ingresar un título");
return false;
}
if (document.getElementById("txtContenido").value == '') {
alert("Debe Ingresar un contenido");
return false;
}
return true;
}
</script>
<script src="js/vendor/jquery-2.2.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="js/vendor/bootstrap.min.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.ajaxchimp.min.js"></script>
<script src="js/jquery.sticky.js"></script>
<script src="js/parallax.min.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBhOdIF3Y9382fqJYt5I_sswSrEw5eihAA"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="js/jquery.magnific-popup.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>
這是我的JS代碼:
<script type="text/javascript">
function performCheck() {
if (document.getElementById("txtTitulo").value == '') {
alert(" Debe Ingresar un título");
return false;
}
if (document.getElementById("txtContenido").value == '') {
alert("Debe Ingresar un contenido");
return false;
}
return true;
}
</script>
不要在按鈕的單擊處理程序上進行表單驗證。 在您的表單提交處理程序中執行它們。 用戶可以在不小心繞過您的輸入的情況下單擊回車鍵來提交表單。 可以在https://www.w3schools.com/js/js_validation.asp找到一個示例
這就是為什么僅進行客戶端驗證不足的一個完美示例。 如果至關重要的是要提交的數據有效,則必須實施服務器端驗證。 無論是偶然還是有意的,用戶都可以毫不費力地繞過任何客戶端驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.