繁体   English   中英

页面加载时提交表单-Struts 2

[英]Submit a form when page loads - struts 2

我想在页面加载时以as:form的形式提交。 这是我的代码:

<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>

但没有成功。

请帮助...谢谢..

您可以使用Jquery代码:

document.ready(function(){
  $("#login_form").submit();
});

不要忘记指定表单的动作属性。

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

如果要通过Java脚本提交,则意味着必须提供如下代码:

如果您的发件人姓名是Java脚本中的* login_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>

在这里,您应该记住2个要点:

1)没有动作名称,它将无法正常工作,因为要转到struts.xml,您需要在代码中输入动作名称,但我没有看到动作名称。

2)其次,在代码中您编写了一些Java脚本代码,但是您既没有通过Submit按钮也没有通过body onload函数调用该函数名称。 我会假设出于发布目的,您对此进行了编码k,这不是问题。

以上代码向我展示的是一种方法。 另一种方法是没有提交按钮,您的代码应运行,您可以在jsp页面中键入如下内容

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

您只需要在主体之前编写此代码,然后jsp页面就可以像您想要的那样工作。

在这里,我使用了两种代码,即动作名(youractionname)意味着在struts2页面中没有动作名就不会进入动作类

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

document.forms.login_form.submit()引发未定义的错误。相反,您可以使用document.forms [0] .submit()

您可以使用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>
<s:form id="login_form" action="" method="post">

如您所见,将提交表单的操作丢失了。 上面的javascript如何知道向此表单提交哪个操作。 尝试填写动作名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM