xx125556 2011-08-29 00:11
浏览 195
已采纳

form submit 如何提交js文件里的变量

我的一个jsp页面 有几个input 还有个extjs树带checkbox的(js文件里的) 现在想用form submit提交input 和树的节点 改怎么提交啊 节点信息已经放到check里面了 如何把check提交到action (struts2) 给个完整点的答案 谢谢了
[code="java"]
var check = [];
Ext.onReady(function() {
Ext.BLANK_IMAGE_URL = "/dtjcsy/pages/js/ext/resources/images/default/s.gif";
var Tree= Ext.tree;
var loader = new Ext.tree.TreeLoader;

var tree = new Tree.TreePanel({
    el:'tree-div',
    autoScroll:true,
    animate:true,
    enableDD:true,
    frame:false,
    border:false,
    useArrows:true,
    checkModel:'cascade',
    onlyLeafCheckable:false,
    rootVisible:true,
    bodyStyle:'background-color:#b4d5f5',
    containerScroll: true,
    listeners:{
        checkchange:function(node,checked){
        if(checked){
            var id = node.attributes.id;
            check.push(id);
        }
        }
    },
    loader: new Tree.TreeLoader({
        dataUrl:'rightAction.action',
        baseParams:{roleId:1},
        baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI }
    })
});

var root =new Tree.AsyncTreeNode({
    text:"可用权限列表",
    draggable:false,
    id:'0'
});

tree.setRootNode(root);
tree.render();
root.expand();

});

[/code]

  • 写回答

10条回答 默认 最新

  • myali88 2011-08-29 17:35
    关注

    [code="java"]
    /*!

    Ext.onReady(function(){
    var form = Ext.get('example-form');//你要赋值的form

    var tree = new Ext.tree.TreePanel({
        renderTo:'tree-div',
        title: 'My Task List',
        height: 300,
        width: 400,
        useArrows:true,
        autoScroll:true,
        animate:true,
        enableDD:true,
        containerScroll: true,
        rootVisible: false,
        frame: true,
        root: {
            nodeType: 'async'
        },
    
        // auto create TreeLoader
        loader : new Ext.tree.TreeLoader({  
            dataUrl:'check-nodes.json',
            requestMethod : 'GET'
        }),
        listeners: {
            'checkchange': function(node, checked){
                var id = node.attributes.id;
                if(checked){
                    Ext.DomHelper.append('example-form' , {tag: 'input', name: 'id', type : 'hidden' , value: id});
                }else{
                    var inputs = Ext.DomQuery.jsSelect('input[value=' + id + ']' , 'example-form');
                    for(var i = 0 , len = inputs.length ; i < len ; i++) {
                        form.dom.removeChild(inputs[i]);
                    } 
                }
            }
        },
    
        buttons: [{
            text: 'Get Completed Tasks',
            handler: function(){
                var msg = '', selNodes = tree.getChecked();
                Ext.each(selNodes, function(node){
                    if(msg.length > 0){
                        msg += ', ';
                    }
                    msg += node.text;
                });
                Ext.Msg.show({
                    title: 'Completed Tasks', 
                    msg: msg.length > 0 ? msg : 'None',
                    icon: Ext.Msg.INFO,
                    minWidth: 200,
                    buttons: Ext.Msg.OK
                });
            }
        }]
    });
    
    tree.getRootNode().expand(true);
    

    });
    [/code]
    这个是我把extjs提供的例子,check-tree.html做了一下改动写的,你看看,我测试过了可以的,页面上加了一个form。我不知道你check提供到服务器端使用什么参数名,所以这里都采用了name为id,你可以按需要更改。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
  • ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
  • ¥50 vue router 动态路由问题
  • ¥15 关于#.net#的问题:End Function
  • ¥15 无法import pycausal
  • ¥15 VS2022创建MVC framework提示:预安装的程序包具有对缺少的注册表值的引用
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用