对于问题(1)    var hiddenFrm = document.forms['Login'];  取得了名为login的form的对象。
然后提交是通过   hiddenFrm.submit(); 对于问题(2)   提交的信息是通过用户写的信息,动态生成,先生成需要的标签
然后  hiddenFrm.elements['IDButton'].value = value; 赋值.
。不过按这个代码elmCount,始终是0。是不是漏贴了一部分.

解决方案 »

  1.   

    谢谢huyao1984的热心。是漏贴了一部分。现在把网页完整的源码贴在这。还请不吝赐教。(1)input标签中,IdToken和IDButton的类型是隐藏类型应该怎么理解。这两天看过的表单提交都是text类型+password类型。
    (2)这两天看过的表单提交都只有一个表单。这里有四个表单,我理解起来有些困难。前三个表单和login表单的关系是什么。
    (3)frm1,frm2,frm3分别定义了一个口令输入控件,然后表单的onsubmit属性表示该表单在提交时,执行defaultSubmit(),return false又是什么意义。
    (4)具体的提交流程是什么?能不能这么理解:网页最后post的数据是通过"Login"这个表单。这个表单的内容是通过用户输入动态生成的,通过submit按钮(makeupButton)提交。
    呵呵...第一次接触这方面的知识,想通过这个例子彻底弄清楚。希望大家能领领路。:)
    <html>
    <head>
    <title>Sun Java System Access Manager (Login)</title>
    <link rel="stylesheet" href="/amserver/css/styles.css" type="text/css">
    <script language="JavaScript" src="/amserver/js/browserVersion.js"></script>
    <script language="JavaScript" src="/amserver/js/auth.js"></script>
    <script language="JavaScript">
        writeCSS('/amserver');
    function pwdcheck(btnValue){
      ...}
        var defaultBtn = 'Submit';
        var elmCount = 0;    /** submit form with default command button */
        function defaultSubmit() {
    LoginSubmit(defaultBtn);
        }    /**
         * submit form with given button value
         *
         * @param value of button
         */
        function LoginSubmit(value) {
           if(pwdcheck(value)){
            aggSubmit();
            var hiddenFrm = document.forms['Login'];        if (hiddenFrm != null) {
        hiddenFrm.elements['IDButton'].value = value;
                hiddenFrm.submit();
            }
           }
        }</script>
    <script type="text/javascript"><!--// Empty script so IE5.0 Windows will draw table and button borders
    //-->
    </script></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="9" marginwidth="9"
        topmargin="9" marginheight="9" onload="placeCursorOnFirstElm();">
    <br>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">    <!-- branding -->
        <tr>
        <td width="110" bgcolor="#F7C102">&nbsp;</td>
        <td width="9" bgcolor="#F7C102">&nbsp;</td>
        <td valign="bottom" bgcolor="#F7C102" width="100%"><img src="/amserver/login_images/Identity_LogIn.gif" alt=""></td>
        </tr>
        <tr>
        <td colspan="3"><img src="..." width="1"
    height="39" alt=""></td>
        </tr>    <tr>
        <td colspan="2">&nbsp;</td>
        <td width="100%">
    <table border="0" cellspacing="0" cellpadding="0"> <!-- display authentication scheme -->
    <tr>
    <td colspan="2" width="140">&nbsp;</td>
    <td>

        Change Password<BR></BR>Password must be reset.

    </td>
    </tr>
    </table>        <table border="0" cellspacing="0" cellpadding="0">
    <tr><td colspan="3">&nbsp;</td></tr>
    <script language="javascript">
        elmCount++;
    </script>
    <!---- end of tiledCallbacks ---->
    <script language="javascript">
        elmCount++;
    </script>

    <!---- password display ---->
    <tr>
    <form name="frm1" action="blank"
        onSubmit="defaultSubmit(); return false;"> <td class="loginText" width="120">
                <label for="IDToken1">  
                    Old Password 
                    
                </label>
    </td> <td class="loginText" width="20">&nbsp;</td>
    <td class="loginText">
        <input type="password" name="IDToken1"
                    id="IDToken1"
    value="" size="20" maxlength="10">
    </td>
    </form>
    </tr> <tr><td colspan="3">&nbsp;</td></tr>
    <!---- end of password ---->
    <!---- end of tiledCallbacks ---->
    <script language="javascript">
        elmCount++;
    </script> <!---- password display ---->
    <tr>
    <form name="frm2" action="blank"
        onSubmit="defaultSubmit(); return false;"> <td class="loginText" width="120">
                <label for="IDToken2">  
                     New Password 
                    
                </label>
    </td> <td class="loginText" width="20">&nbsp;</td>
    <td class="loginText">
        <input type="password" name="IDToken2"
                    id="IDToken2"
    value="" size="20" maxlength="10">
    </td>
    </form>
    </tr> <tr><td colspan="3">&nbsp;</td></tr>
    <!---- end of password ---->
    <!---- end of tiledCallbacks ---->
    <script language="javascript">
        elmCount++;
    </script> <!---- password display ---->
    <tr>
    <form name="frm3" action="blank"
        onSubmit="defaultSubmit(); return false;"> <td class="loginText" width="120">
                <label for="IDToken3">  
                     Confirm Password 
                    
                </label>
    </td> <td class="loginText" width="20">&nbsp;</td>
    <td class="loginText">
        <input type="password" name="IDToken3"
                    id="IDToken3"
    value="" size="20" maxlength="10">
    </td>
    </form>
    </tr> <tr><td colspan="3">&nbsp;</td></tr>
    <!---- end of password ---->
    <!---- end of tiledCallbacks ---->
    <script language="javascript">
        elmCount++;
    </script>
    <!---- end of tiledCallbacks ---->
    <!---- end of validContent ----->

    <!-- Submit button --> <script language="javascript">
        defaultBtn = ' Submit ';
    </script> <tr>
    <td colspan="2">&nbsp;</td>
    <td align="right">
        <table border="0" cellpadding="2" cellspacing="0">
        <tr>     
        <td>
    <script language="javascript">
        upButton(
    ' Submit ',
    "javascript:LoginSubmit(' Submit ')");
    </script>
        </td>
        
        <td>
    <script language="javascript">
        upButton(
    ' Cancel ',
    "javascript:LoginSubmit(' Cancel ')");
    </script>
        </td>
        
        </tr>
        </table>
    </td>
    </tr> <!---- end of hasButton ---->

    <!---- end of ContentButtonLogin ---->

    </table>
        </td>
        </tr>
        <tr>
        <td colspan="3"><img src..." width="1"
    height="57" alt=""></td>
        </tr>    <!-- copyrights -->
        <tr>
        <td width="110" align="right" valign="top"><img
    src="..." width="52" height="83" 
            alt="Sun Java System Software"></td>
        <td><img src="..." width="9" height="1" 
            alt=""></td>
        <td valign="top" class="footerText">

        </td>
        </tr>
          
    </table><form   action="..."  name="Login"  method="post"><script language="javascript">
        if (elmCount != null) {
    for (var i = 0; i < elmCount; i++) {
        document.write(
    "<input name=\"IDToken" + i + "\" type=\"hidden\">");
    }
        document.write("<input name=\"IDButton"  + "\" type=\"hidden\">");
        }
    </script>
    <input type="hidden" name="goto" value="url here">
    <input type="hidden" name="gx_charset" value="UTF-8"></form></body>
    </html>
      

  2.   

    不知道这是哪里的sb做的东西这个页面里面一共用4个form 其中前三个对应
    Old Password New Password Confirm Password也就是说它为每一个输入框单独定义了一个表单。
    然后它实际提交的是
    <form  action="..."  name="Login"  method="post"> <script language="javascript"> 
        if (elmCount != null) { 
    for (var i = 0; i < elmCount; i++) { 
        document.write( 
    " <input name=\"IDToken" + i + "\" type=\"hidden\">"); 

        document.write(" <input name=\"IDButton"  + "\" type=\"hidden\">"); 
        } 
    </script> 
    <input type="hidden" name="goto" value="url here"> 
    <input type="hidden" name="gx_charset" value="UTF-8"> </form> 这个表单
    提交动作还真没有找到,貌似是利用回车来控制
      

  3.   

        网站登录以后出现的上面这个网页是通过wininet编程得到的。网页上没有发现提交按钮。网站是SSL保护的。我把这个要求修改口令的网页放在自己架设的web服务器上想抓post过去的明包,只能在第三个文本输入框输完以后回车提交,结果ie地址栏出现的不是Login表单中action的属性值,而是frm3表单中blank+口令这样的地址。百思不得其解......
        实际编程中我post“IdToken1=...&IdToken2=...&IdToken3=...”到Login表单的action就可以了。就是不明白为什么自己做的环境不行....