当一个表单要多对象提交时,界面的js验证时相当让人烦的事
如果事先有准备的话就会有事半功倍的效果,下面是一个freemarker模板
<@s.form id="channel_form" name="channel_form" action="" method="post" theme="simple">
<table width="682" border="0" cellpadding="0" cellspacing="0">
<script type="text/javascript">
function validate_channel(elementValue,elementName){
<!--elementValue循环的index elementName 表示每个对象的名称-->
<!--描述-->
<!--构造id-->
var channelDescription="#channelDescription";
<!--注意:当在js中数字跟字符相拼接时,数字首先要转行成字符才行 -->
channelDescription+=(elementValue).toString();
<!--描述的值-->
var channelDescriptionValue=$(channelDescription).val().replace(/^\s+|\s+$/g, "");
var channelDescriptionLength=channelDescriptionValue.replace(/[^\x00-\xff]/g, 'xx').length;
<!--当获取到元素的值和长度时,就可以在界面进行控制和提示了-->
<!-- 数量-->
var quantity="#quantity";
quantity+=(elementValue).toString();
var quantityValue=$(quantity).val();
<!--跟描述同理-->
return true;
}
</script>
<#if channelList?exists>
<#list channelList as channel>
<#assign index=channel_index/>
<tr>
<td height="30">
<table width="98%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="3%" height="30"> </td>
<td width="15%">描述</td>
<td width="82%"><@s.textfield name="channelList[${index}].channelDescription" id="channelDescription${index}" size=47/></td>
</tr>
<tr>
<td height="30"> </td>
<td height="30">分配库存量</td>
<td height="30"><@s.textfield name="channelList[${index}].quantity" id="quantity${index}" /></td>
</tr>
</table></td>
</tr>
</#list>
</#if>
<tr>
<td height="20" colspan="2" align="center"> </td>
</tr>
<tr>
<td height="50" colspan="2" align="center"><label>
<input type="button" value="保存" class="but02" οnclick="return commit_channel_form();"/>
</label></td>
</tr>
</table>
</@s.form>
注意:如果要把Number转换成String,可以使用Number的toString()方法
(1).toString()括号必须或者 1 .toString()空格必须