EasyUI 表单验证注意事项

easyui 文件上传,及结合springMVC 后台int参数的注意事项
1. 如果springMVC后台接收的参数为int则(如ID或序列等等参数),必须要有值,否则springMVC会报类转换失败的异常(避办法是前台隐藏传int参数的值或后台不要用int参数,可通过String转换为int),其原因是所有参数在request或respose都是字符串类型的,空字符串(NULL)转成int当然会报类型转换异常的!
2. 带有文件上传的表单不能通过简单的$('#addForm').form('clear');  和var r = $('#addForm').form('validate');的方法来清除和验证表单,否则easyui 会报TypeError: _3b4 is undefined 的异常(如果你不主动捕获是不会报的)

eg:

		//新增
		function addrow(){
			try {
 	 			$('#addForm').form('clear');//参数中有默认值不能clear,springMVC int参数必须传入(springMVC 类型转换或报异常)
			} catch (e) {
				alert(e);
			}
			$('#geshouName').val('');
			$('#geshouId').val('0');
			showWin();
		}

		function addOrUpdate(){
			alert(2);
			try {
				var r = $('#addForm').form('validate');
				alert(r);
				if(!r) {
					alert(false);
					return false;
				}
			} catch (e) {
				alert(e);
			}
			
			
			$('#addForm').form('submit', { 
				 url:'add.do',
				 onSubmit: function(){   
					 alert('');
				        // do some check   
				        // return false to prevent submit;   
				    },
			    success: function(data){   
			        var data = eval('(' + data + ')'); 
			        // change the JSON string to javascript object   
					if (data && data.success == "true") {
						$('#addWind').window('close');
						$('#gridTable').datagrid('reload');  
						$.messager.alert('提示','添加成功','info');
					} else  
						$.messager.alert('错误提示','服务器繁忙,请稍候重试!','error');
			    }   
			}); 

From HTML

<form id="addForm" method="post" enctype="multipart/form-data" action="add.do" >
    	<input type="hidden" id="geshouId" name="geShouId" value="0"/>
   	<table align="center" style="margin: 10px;">
   		<tr>
   		  <td>歌曲名字:</td>
   		  <td><input class="easyui-validatebox" data-options="required:true" type="text" name=mediaName id="geshouName"></input></td>
   		  <td rowspan="6">
    		<img alt="" src="http://www.baidu.com/img/baidu_jgylogo3.gif">
   		  </td>
	    </tr>
   		<tr>
   			<td>FTP文件名:</td>
   			<td><input class="easyui-validatebox" data-options="required:true" type="text" ></input></td>
	    </tr>
   		<tr>
   		  <td>歌曲类型:</td>
   			<td><select> </select></td>
	    </tr>
        <tr>
   			<td>歌手:</td>
   			<td><input class="easyui-combobox" id="language" 
			data-options="url:'http://localhost:8080/zhepg/manage/klok/geshou/listAll.do',valueField:'id',textField:'text'"></td>
	    </tr>
        <tr>
   			<td>合唱歌手名:</td>
   			<td><input type="text" name="geShouName2" ></input></td>
	    </tr>
   		<tr >
   			<td>歌曲封面:</td>
    		<td><input type="file" class="easyui-validatebox" name="photoFile" ></input></td>
	    </tr>
   		<tr height="30" >
   			<td colspan="2" align="center">
   			  <a href="javascript:void(0);" id="btn-back" οnclick="$('#addWind').window('close');" class="easyui-linkbutton" iconCls="icon-back">返回</a>
			  <a href="javascript:void(0);" id="btn-add" οnclick="addOrUpdate();" class="easyui-linkbutton" iconCls="icon-save">保存</a>
		    </td>
	    </tr>
    </table>
   	</form>

这时不管你是初始化表单还是提交表单都会出现奇怪的现现象,debug下是看不到任何异常信息,如果你像我上面js里面去try 和catch异常会发现,原来已经报错了。具体为什么会导致这样,没有细查,我们要规避这一问题就是有文件的表表单如果需要验证就只能手工一个个去验证不能直接

$('#addForm').form('clear');  和var r = $('#addForm').form('validate')


     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值