Javascript 页面加载时提交表单-struts 2

Javascript 页面加载时提交表单-struts 2,javascript,forms,struts2,form-submit,Javascript,Forms,Struts2,Form Submit,我想在页面加载时提交一个s:表单。 这是我的密码: <s:form id="login_form" action="" method="post"> <s:textfield label="User name" id="login_form_username" name="username" value="abc.xyz" cssClass="txtbox" required="true" /> <s:

我想在页面加载时提交一个s:表单。 这是我的密码:

<s:form id="login_form" action="" method="post">
<s:textfield label="User name" id="login_form_username"
            name="username" value="abc.xyz" cssClass="txtbox"
            required="true" />
        <s:password label="Password" id="login_form_password" name="password"
            value="pass" cssClass="txtbox" required="true" />
        <s:submit value="Login" />
    </s:form>

实际上,如上面代码所示,我将动态设置uname和pwd,然后希望使用javascript直接提交此表单

我试过这个:

<script type="text/javascript"> 
      document.forms.login_form.submit();
</script>

document.forms.login_form.submit();
但是没有成功

请帮忙。。。
谢谢..

抛出未定义错误。您可以使用 文档。表单[0]。提交()

您可以对页面加载工作使用onload属性

<script type="text/javascript"> 
    function submit(){
      document.forms[0].submit();
    }
</script>

  <body onload="submit()">
  <s:form id="login_form" action="" method="post">
       <s:textfield label="User name" id="login_form_username"
            name="username" value="abc.xyz" cssClass="txtbox"
            required="true" />
        <s:password label="Password" id="login_form_password" name="password"
            value="pass" cssClass="txtbox" required="true" />
        <s:submit value="Login" />
    </s:form>

 </body>

函数提交(){
document.forms[0]。提交();
}

正如您所看到的,表单将提交到的操作缺失。上面的javascript如何知道提交此表单的操作。
尝试填写操作名称。

如果您想通过java脚本提交,则意味着您必须给出如下代码:

如果在java脚本中您的from名称是*login\u form*,那么您可以这样给出

function submitform()
{
    document.forms["login_form"].submit();
}


<s:form id="login_form" name="login_form" action="your action name" method="post">
<s:textfield label="User name" id="login_form_username"
            name="username" value="abc.xyz" cssClass="txtbox"
            required="true" />
        <s:password label="Password" id="login_form_password" name="password"
            value="pass" cssClass="txtbox" required="true" />
        <s:submit value="Login" onClick="submitform()"/>
</s:form>
函数submitform()
{
document.forms[“login_form”].submit();
}
在这里,您应该记住两个要点:

1) 如果没有动作名称,它将不起作用,因为 struts.xml在代码中需要操作名,但我没有看到操作名

2) 其次,您在代码中编写了一些java脚本代码,但您没有 通过submit按钮或通过 车身加载功能。我会假设你是出于发帖的目的 这不是问题所在

上面代码显示的是一种方式。另一种方法是不使用submit按钮,您的代码应该运行,也就是说,您可以在jsp页面中这样键入

<META HTTP-EQUIV="Refresh" CONTENT="1;URL=youractionname.action">

您必须在正文之前编写此代码,只有这样jsp页面才能像您所希望的那样工作

这里我使用了两个代码action name(youractionname)意味着在struts2页面中没有action name将无法进入action类

底线:动作名称在struts2中很重要


您可以使用Jquery代码:

document.ready(function(){
  $("#login_form").submit();
});
别忘了指定表单的action属性


注意:要使用jquery,您需要添加jquery库。

发生了什么?JavaScript控制台中有什么东西吗?表单名称/id呈现为什么?如果您已经知道了这些值,那么这样做是必要的吗?您检查过javascript错误控制台了吗?如果没有错误,可能是您没有将javascript代码片段放在页面上的正确位置。请在
末尾的某个地方尝试,或者甚至在
中尝试。我不知道这些值,但正如我所指定的,稍后我将在加载页面之前从请求页面在jsp页面本身中设置这些uname和pwd值。我只是想绕过登录过程,因为我将以另一种方式传递uname和pwd。@rodion+1用于将
脚本置于
末尾,之前失败了,因为加载页面时未设置uname和pwd字段的值,所以每次这些字段都是
null
。我在脚本中设置了它们的值,现在它正在工作。。。再次感谢所有。。。
document.ready(function(){
  $("#login_form").submit();
});