今天在写项目的时候,由于js基础比较差所以在写js和jquery代码时出现了问题,感觉代码没什么问题,但是就是拿不到值,后来才发现问题,直接看代码!
html的代码
<form action="${ctx}/act/kdcjyy" method="post" name="maform" id="myform">
<ul class="form-list-box">
<li class="form-list">
<label for="">用户姓名:</label>
<input type="text" placeholder="请输入用户姓名" class="form-input" name="userName" autocomplete="off">
</li>
<li class="form-list">
<label for="">身份证号:</label>
<input type="text" placeholder="请输入身份证号" class="form-input" name ="idCard" autocomplete="off">
</li>
<li class="form-list">
<label for="">选择地市:</label>
<select id="home-city" class="form-input" name="city">
<#list areaList as area>
<option value="${area.area_code}">${area.area_name}</option>
</#list>
</select>
</li>
</ul>
<div class="btn-box">
<input type="button" value="查询" class="letterSpace submit-btn" onclick="show()"/>
</div>
</form>
下面是js的代码
window.onload = function () {
$('body').css({
'height': $(window).height()
})
}
//通过点击事件调用verify()
function show(){
//verify()返回true继续执行代码
if(verify()){
//获取表单id。提交表单,需要注意,这里提交时是获取表单的id然后执行提交
//不是获取button按钮然后提交表单,如果获取按钮的提交表单将没有反应
$("#myform").submit();
//这里由于接口清楚数据比较慢,为了避免重复请求,加了个loading提示
$.showLoading();
}
}
function verify(){
//获取name为username并且是input标签的节点,
//需要注意如果这里直接获取的值,那这里控制的就不是这个标签,而是这个标签的值,那样这个var就不能直接操作dom相关
var userName = $("input[name='userName']");
if (userName.val()=="" || userName.val() == null){
alertModal('姓名不能为空');
userName.focus();
return false;
}
var idCard = $("input[name='idCard']");
/*
此处和上边一样出现了同样的问题,当时是这样写的
var idCard = $("input[name='idCard']").val();
if (idCard.length != 18 && idCard.length != 15){
alertModal('身份证信息输入不正确');
//在这里控制这个焦点回位的时候就一直在报错,说是找不到这个的数据类型什么的,忘记了!
idCard.focus();
return false;
}
后来才想通现在这个状态的var拿的是值,而不是name为idCard的input标签,最终经过修正变成如下写法,希望同学们别和我犯一样的错误啊!
*/
if (idCard.val().length != 18 && idCard.val().length != 15){
alertModal('身份证信息输入不正确');
idCard.focus();
return false;
}
return true;
}
function alertModal(msg){
$.modal({
title: "温馨提示",
text: msg,
buttons: [{
text: "关闭",
}, ]
})
}
以上就是本人在错误中给自己总结的一点心得,如有错误希望指正,刚入行java码农!