今天遇到了一个问题,完成登录和注册功能时,使用easyui的required:true,validType:'length[6,18]'等等各种校验textbox时,点击登录或者注册按钮,未输入任何值也能提交,然后后台报错。后来发现自己使用的按钮类型为submit,而且easyui并不主动提供校验form表单所有数据之后再提交的方法,但是有校验所有数据是否符合要求的方法。
解决这个问题首先要清楚,submit类型的按钮点击后直接就提交form表单了,但是button类型的按钮不会。所以解决思路是:可以先把submit改成button,然后给这个按钮添加一个点击事件,在这个点击事件中判断所有数据是否都符合自己定义的校验规则,符合的话将button改为submit,否则不改变,就一直无法提交。具体参考代码如下:
<div style="margin:20px 100px 10px 100px">
<input type="button" class="easyui-linkbutton" id="regButton" value="完成注册"
style="padding:5px 0px;width:100%;font-size:20px;">
</div>
$("#regButton").click(function(){
//registered为表单id。所有数据符合校验要求时,isValid 返回true。
var isValid = $("#registered").form('validate');
if(isValid){
$("#regButton").attr("type","submit");
}
});