看到楼上的用 buffalo 解决传递web页面多个表单。
刚好项目中有用过。。 分享一下。部份代码。
当增加一条数据时。获取前台页面表单值。如果有很N个。。
<form id="addForm" >
<input id="add.name" >
<input id="add.address">
<input id="add.tel">。。。。。。N个。
</form>
做法。
var addObj = {};
addObj[Buffalo.BOCLASS]="com.ptn.opera.domain.user.User";
接下来对以对传递对象的方式处理页面上的所有表单的参数
FormUtil.formToObject("addForm",addObj,"add");
之后利于
buffalo.remoteCall("userService.addUsers", [addObj], function(reply){
if (reply.isFault()) {
alert(reply.getResult());
} else {
alert(reply.getResult());
}
});
对方法 FormUtil。formToObject代码 如下。
对于其中的("jType")实际出现在 <input id="add.id" jtpye="int" >对表单值类型转换
FormUtil.formToObject = function(formId, obj, objName) {
var formObj = document.getElementById(formId);
var elements = formObj.elements;
for (var i=0; i<elements.length; i++) {
var elemName = elements[i].name;
if (elemName.indexOf(objName) != 0) {
continue;
}
elemName = elemName.substring(objName.length + 1);
var jType = elements[i].getAttribute("jType");
if (jType != null) {
if (jType == "int") {
obj[elemName] = parseInt(elements[i].value);
} else if (jType == "Date" && elements[i].value != "") {
var d = {};
d[Buffalo.BOCLASS] = "java.sql.Timestamp";
var dateValue = elements[i].value;
var year = dateValue.substring(0,4);
var monthDay = dateValue.substring(5, 10);
var hhmmss = dateValue.substring(10);
dateValue = monthDay + "-" + year + hhmmss;
alert(dateValue);
var dateTime = new Date(dateValue);
//var dateTime = new Date("01-26-2007 23:21:20");
dateTime.setHours(dateTime.getHours() -
;
d["value"] = dateTime;
obj[elemName] = d;
}
} else {
obj[elemName] = elements[i].value;
}
}
}
供参考。 欢迎大家交流!