2012-01-18 61 views
0

我想在页面加载时提交s:表单。 这里是我的代码:页面加载时提交表单 - struts 2

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

,但没有成功。

请帮助... 谢谢..

+2

发生了什么事? JavaScript控制台中的任何内容?表单名称/ ID呈现为什么?如果你已经知道价值观,这样做甚至有必要吗? – 2012-01-18 14:25:40

+1

你检查了javascript错误控制台吗?如果没有错误,也许你没有把你的JavaScript片段放在页面上的正确位置。尝试''末尾的某处或者甚至可以在''中尝试。 – rodion 2012-01-18 14:27:40

+0

我不知道这些值,但正如我指定的那样,稍后我会在加载页面之前,在请求页面中将这些uname和pwd值设置为jsp页面本身。我只是想绕过登录过程,因为我会通过其他方式传递uname和pwd。 – Ved 2012-01-18 14:28:03

回答

0
<s:form id="login_form" action="" method="post"> 

正如您所看到的,表单将被提交的行为缺失。上述JavaScript如何知道要将此表单提交给哪个操作。 尝试填写动作名称。

0

document.forms.login_form.submit()抛出的是未定义error.instead您可以使用 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> 
0

如果你想通过Java脚本提交意味着你必须给这样的代码如:

如果从名称为* login_form *在Java脚本那么也可以把这样的

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脚本代码,但是,你不是通过提交按钮,也不是通过 body onload函数调用该函数名。我会假设想要发布的目的你做了 这个编码k不是问题。

我上面显示的代码是一种方式。另一种方式是没有提交按钮的代码应该运行的手段,你可以在JSP页面中

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

你必须写体在此之前的代码才JSP页面就像你想要什么类型这样的。

在这里,我用两个代码动作名称(youractionname)意味着没有行动的名字在Struts2页面不会去的动作类

底线:动作名称是Struts2的重要

1

你可以使用jQuery代码:

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

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

注意:要使用jQuery,你需要添加jQuery库。

相关问题