js程式碼與html程式碼分離示例
驗證使用者名稱是否存在的示例程式碼引出該思想:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/myJS.js"></script>
<title>Insert title here</title>
<script type="text/javascript">
// 方式一:使用文字框的onblur事件(失去焦點事件)
// function ckName() {
// // 通過標籤名獲取元素節點物件
// var name = document.getElementsByTagName("input")[0];
// // 建立XMLHttpRequest物件
// var xhr = getXMLHttpRequest();
// // 處理響應結果,建立回撥函式,根據響應狀態動態更新頁面
// xhr.onreadystatechange = function() {
// if (xhr.readyState == 4) { // 說明客戶端請求一切正常
// if (xhr.status == 200) { // 說明伺服器響應一切正常
// // alert(xhr.responseText); // 得到響應結果,得到頁面上面的結果,注意結果為字串
// var msg = document.getElementById("msg");
// if (xhr.responseText == "true") {
// // msg.innerText = "使用者名稱已存在";
// msg.innerHTML = "<font color=`red`>該使用者名稱已存在</font>";
// } else {
// msg.innerHTML = "<font color=`green`>該使用者名稱可以使用</font>";
// }
// }
// }
// }
//
// // 建立一個連線
// xhr.open("get", "${pageContext.request.contextPath}/servlet/ckNameServlet?name=" + name.value);
// // 傳送請求
// xhr.send(null);
// }
// 方式二:不使用文字框的事件
// onload 載入完畢的事件,等到頁面載入完畢後再執行onload事件所指向的函式。
window.onload = function() {
// 通過名獲取元素物件
var nameElement = document.getElementsByName("userName")[0];
nameElement.onblur = function() {
var name = this.value; // this等價於nameElement
// 建立XMLHttpRequest物件
var xhr = getXMLHttpRequest();
// 處理響應結果,建立回撥函式,根據響應狀態動態更新頁面
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) { // 說明客戶端請求一切正常
if (xhr.status == 200) { // 說明伺服器響應一切正常
// alert(xhr.responseText); // 得到響應結果,得到頁面上面的結果,注意結果為字串
var msg = document.getElementById("msg");
if (xhr.responseText == "true") {
// msg.innerText = "該使用者名稱已存在";
msg.innerHTML = "<font color=`red`>該使用者名稱已存在</font>";
} else {
msg.innerHTML = "<font color=`green`>該使用者名稱可以使用</font>";
}
}
}
}
// 建立一個連線
xhr.open("get", "${pageContext.request.contextPath}/servlet/ckNameServlet?name=" + name + "&time=" + new Date().getTime());
// 傳送請求
xhr.send(null);
}
}
</script>
</head>
<body>
<!-- 文字框的onblur事件(失去焦點事件) -->
<!-- 使用者名稱:<input type="text" name="userName" onblur="ckName()"/><span id="msg" ></span></br>
為了使得頁面的標籤變得乾淨,事件不寫在標籤上。即js程式碼與html程式碼分離。
-->
使用者名稱:<input type="text" name="userName" /><span id="msg" ></span></br>
密碼:<input type="password" name="pwd" /></br>
</body>
</html>
我的GitHub地址:https://github.com/heizemingjun
我的部落格園地址:http://www.cnblogs.com/chenmingjun
我的螞蟻筆記部落格地址:http://blog.leanote.com/chenmingjun
Copyright ©2018 黑澤明軍
【轉載文章務必保留出處和署名,謝謝!】
相關文章
- HanLP程式碼與詞典分離方案與流程HanLP
- html實體編碼遇上js程式碼HTMLJS
- webpack v3 學習筆記(二) 分離js程式碼Web筆記JS
- 排序程式碼示例排序
- RabbitMQ 程式碼示例MQ
- php原聲實現分頁程式碼示例PHP
- java SPI 程式碼示例Java
- Java NIO 程式碼示例Java
- js程式碼JS
- pytorch深度學習分類程式碼簡單示例PyTorch深度學習
- 視窗程式框架示例程式碼框架
- HTML基礎程式碼HTML
- 靜態代理程式碼示例
- Kafka 1.0.0 d程式碼示例Kafka
- vue 實現 js css html分離VueJSCSSHTML
- js程式碼混淆JS
- webpack--css、html 和 js 程式碼的常用處理WebCSSHTMLJS
- 程式碼的分離與解耦,向移動架構師進階!解耦架構
- webpack v4 中的斷舍離 - 程式碼分離 SplitChunksPlugin(一)WebPlugin
- RSA加密解密示例程式碼加密解密
- pytorch程式碼示例筆記 -- AutogradPyTorch筆記
- 前後端分離-根據程式碼講解思路後端
- vscode怎麼執行程式碼HTML 怎麼在vscode編寫HTML程式碼VSCode行程HTML
- Python中檔案讀取與儲存程式碼示例Python
- JS HOOK 程式碼段JSHook
- JS程式碼規範JS
- JS常用程式碼塊JS
- HTML5網頁body設定自適應全屏示例程式碼HTML網頁
- HTML 程式碼註釋規範HTML
- HTML應用CSS程式碼方式HTMLCSS
- 基於MySql主從分離的程式碼層實現MySql
- 逆向破解js程式碼加密,程式碼混淆不是難事JS加密
- sitemap 檔案填充示例程式碼
- Opencv及常用方法示例程式碼OpenCV
- 在Eclipse下編寫HTML/CSS/JS/JSP/Java程式碼時,程式碼自動提示的相關設定EclipseHTMLCSSJSJava
- 獲取1688商品詳情API:步驟與程式碼示例API
- JS彈幕程式碼分析JS
- toastr.js程式碼庫ASTJS