一:form表单中onclick事件和onsubmit事件的执行顺序
原来有bug的代码段
<script type="text/javascript">
function addWhInfo() {
var form = document.forms[0];
form.action = "<%=basePath%>wares/addWhInfo";
form.method = "post";
form.submit();
}
function checkSubmit(){
var txt1 = document.getElementById("contents").value;
var txt2 = document.getElementById("address").value;
if(txt1 == null || txt1 == ""){
alert("请输入库存容量!");
return false;
}
else if(txt2 == null || txt2 == ""){
alert("请输入仓库地址!");
return false;
}else{
return ture;
}
}
</script>
<div id="login">
<h1>添加仓库信息</h1>
<form method="post" id="addWHForm" onsubmit="return checkSubmit()">
仓库容量:<input type="text" id="contents" name="kucun"><br><br><br>
仓库地址:<input type="text" id="address" name="adr"><br><br><br>
<input type="button" value="添加" onclick="addWhInfo()">
</form>
</div>
如代码段所示,这是一个很简单的表单,提交数据时判断是否有空项,如有空项,则弹窗给出相应的提示。
我在编写完后测试数据,发现有空数据也会直接添加到数据库中,因为数据库中相应的列没有选择非空的要求,所以数据添加后内容相应的显示为空。
然后我盲目的设置了断点,企图发现问题,但是发现程序不会进行判断,也没有弹窗提示。之后又通过修改比较函数等方法进行尝试,但都没有成功。
最后,经过一番思考,我苦笑不得,发现问题出在两个函数的执行顺序上,即先执行addWhInfo(),再执行checkSubmit()
二、无关紧要的小问题
在编写IWareService接口中的函数时,用了public进行了声明,发现程序中提示:Modifier ‘public’ is redundant for interface methods,即接口的方法默认是 public abstract 的。然后删掉public即可。
虽然都是一些不起眼的小问题,但是都暴露了自己基础掌握的很差,理论知识不过关,自己还要多加努力。