解决传递web页面多个表单(buffalo)

看到楼上的用 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;
        }
    }
}




供参考。 欢迎大家交流!
 

你可能感兴趣的:(sql,Web,Opera)