继昨天无法正常引入jQuery,好不容易解决掉,今天发现jQuery引入成功了,但是效果不生效,话不多说,直接上代码
<script src="./jquery-3.5.1.js"></script>
<script>
$(function () {
$("button").click(function () {
alert("12345678");
})
})
</script>
当点击button按钮时,提示12345678,结果却没有出来,排除原因
看网页源代码,发现这里是有代码高亮显示的,所以不是代码的问题
后来发现是id选择器没有加#
然后实现我具体的功能,即在会员注册时,当输入账号时,直接验证这个用户名称有没有在数据库内
代码如下
<script>
$(function() {
$("#username").blur(function () {
var username = $("#username").val();
//发送异步请求
alert(username + "123");
$.ajax({
url:"checkusername",
type:"post",
data:"username=" + username,
success:function (data) { //会将服务器返回的数据保存在data中
$("#regist_span").html();
}
})
})
})
</script>
结果又出现新的问题了
不行,查看错误原因
状态码是500,于是百度500是什么原因,发现是服务器内部错误,原因很很多种,于是在验证,代码如下
看看能不能在控制台输出,重新部署
发现控制台没有输出,那就是科幻段的错误,于是我将post请求改成get请求,发现成功了
于是我又去查看服务器端的代码,发现我重写都doPost函数时,写错了
将都doPost改为doGet,发现可以了
但是新的问题出现了,登录界面并没有提示这个账号有没有被使用
但是控制台却输出了
那么问题又出现在哪里呢,检查后发现是html()中没有写data,都是小错误
添加data后,重新部署,发现可以了
再把在jsp中的script转移到js文件当中去,重新发现错误,发现转移到function.js当中后,代码又不管用了
用alert()函数测试了一下,发现alert()根本没有执行,js代码放在jsp文件中就生效,放在js文件中就失效,真的烦人
最后发现是在js文件中不能直接写jquery,需要引入jquery.js
完美解决
调用的代码
var new_element=document.createElement("script");
new_element.setAttribute("type","text/javascript");
new_element.setAttribute("src","jquery-3.5.1.js");
document.body.appendChild(new_element);
可以根据这个改一改,好,今天的任务到此结束