2012-01-23 302 views
0

我新的結構。我已經在一個應用程序中有這樣的形式下拉列表與..提交表單沒有提交按鈕

<%@taglib uri="/WEB-INF/struts-html.tld" prefix="prefix1" %> 
<prefix1:form action="formaction"> 
    <prefix1:select property="choose"> 
    <prefix1:option value="1">1</prefix1:option> 
    <prefix1:option value="2">2</prefix1:option> 
    <prefix1:option value="3">3</prefix1:option> 
    <prefix1:option value="4">4</prefix1:option> 
</prefix1:select> 

現在我的問題是,我想提交表格onchange()事件,而不是提交按鈕。也就是說,當從下拉列表中選擇一個值時,表單必須提交。 我該怎麼做?

+0

你需要一個簡單的JavaScript來做表格提交onchange。 –

+1

[不要這樣做](http://www.cs.tut.fi/~jkorpela/forms/navmenu.html) – Quentin

+0

@SKS:我可以在struts中做到這一點..? – user636207

回答

2

編輯:正如Quentin評論中提到的,您不應該在下拉選擇的變化上提交表單。 Read here

但是,如果你仍然想這樣做,那麼,一個簡單的JavaScript將做的伎倆,提供的JavaScript被允許在您的應用程序中使用。

  1. 名稱添加到您的表單標籤,<prefix1:form action="formaction" styleId="formAction">
  2. 添加以下函數內部<script>標籤在JSP
  3. 添加一個onchange事件處理程序中選擇元素,<prefix1:select property="choose" onchange="submitForm()">
function submitForm() { 
    document.getElementById("formAction").submit(); 
    } 
+0

它顯示錯誤爲...屬性名稱對於標記形式根據TLD和屬性屬性無效也不可用於此.. – user636207

+0

@ user636207:我的錯誤,剛纔看了看tld定義,看起來像我有使用這裏提到的styleId http://struts.apache.org/1.x/struts-taglib/tlddoc/html/form.html –

0

我得到了我的解決方案..它看起來像這樣

<prefix1:form action="sample"> 
<prefix1:select property="choose" onchange="this.form.submit()"> 
    <prefix1:option value="1">1</prefix1:option> 
    <prefix1:option value="2">2</prefix1:option> 
    <prefix1:option value="3">3</prefix1:option> 
    <prefix1:option value="4">4</prefix1:option> 
</prefix1:select> 
</prefix1:form>