2012-01-18 59 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庫。

相關問題