日期:2014-05-16  浏览次数:20390 次

请教下javascrift提交表单问题
我使用javascrift提交表单这个已经可以使用了如下
JScript code

function actionPost(ip,port)
{
        var aform = document.createElement('form');

        aform.method='post';
        aform.action='/cgi-bin/post.cgi'; 
        aform.enctype='application/x-www-form-urlencoded'; 
        aform.target='postresult';//直接显示在一个iframe里是没问题的了 但是我想处理这个反馈
 
               var obj=document.createElement('input');
        obj.type='hidden';
        obj.name='hostIP';        
        obj.value=ip;
        aform.appendChild(obj);
            
               obj=document.createElement('input');
        obj.type='hidden';
        obj.name='hostPort';        
        obj.value=port;
        aform.appendChild(obj);

        document.body.appendChild(aform);
        aform.submit();        
        return false;
}




问题是提交后会反馈一个页面回来 这个页面很简单 就是一串字符一个单词,我要根据这个单词做一些动作。
我post表单后怎么才能在脚本里获取这个单词呢。







------解决方案--------------------
我知道用ajax可以做到,不知道form的submit有无回调方法.
------解决方案--------------------
用ajax吧,否则单单靠js无法实现
------解决方案--------------------
JScript code

<script type="text/javascript">
var AjaxUtil = {
        /**
         * 提交请求
         */
        request:function(url,params,callback) {
            var xhr = this.createXhrObject();
            xhr.onreadystatechange = function() {
                if(xhr.readyState !== 4) {
                    return;
                }
                if(xhr.status === 200) {
                    callback(xhr.responseText)
                } else {
                    throw new Error('请求失败:' + xhr.responseText);
                }
            };
            
            xhr.open('POST',url + "?" + params,true);
            xhr.send(null);
        }
        ,createXhrObject:function() {
            var methods = [
                function(){ return new XMLHttpRequest();}
                ,function(){ return new ActiveXObject('Msxml2.XMLHTTP');}
                ,function(){ return new ActiveXObject('Microsoft.XMLHTTP');}
            ];
            
            for(var i=0,len=methods.length; i<len; i++) {
                try {
                    methods[i]();
                } catch (e) {
                    continue;
                }
                
                this.createXhrObject = methods[i];
                return methods[i]();
            }
            
            throw new Error("创建XHR对象失败");
        }
    };
</script>
<script type="text/javascript">
    function callback(e) {
        // 这里就是想要单词
        alert(e)
    }
    var ip = '192.168.172.108';
    var port = 1822;
    // 请求
    AjaxUtil.request('/cgi-bin/post.cgi','ip='+ip+'&port=' + port,callback);
</script>