2013-01-05 20 views
1

我已經創建了一個由多個"edit""delete"按鈕組成的HTML表單。我把它們放在for循環中,以便在另一頁上查看它們中的很多。如何獲取我可以在頁面源上查看的提交按鈕的名稱字段的值?

如何在下一個JSP頁面上獲取提交按鈕的名稱字段或單擊了哪個按鈕?或者,你能爲我提供一個替代方案嗎?

<% for (int t = 1; t < 10; t++) { %> 
    <label> 
     <input type="submit" name="<%=t %>" value="edit" onclick="this.form.action='df1.jsp?flag=1&act=1';this.form.submit();" /> 
     <input type="submit" name="<%=t %>" value="delete" onclick="this.form.action='df1.jsp?flag=1&act=1';this.form.submit();" /> 
    </label> 
<% } %> 

當我查看網頁的源文件,它顯示了刪除的name="1"進行編輯和name="1"直到10

我想獲得服務器端名稱字段的值。我也不能申請request.getParameter(),因爲我不知道用戶會點擊哪個按鈕。

回答

-1
you can get button using 

String buttonName = request.getParameter("button-name") 

然後你必須將該值作爲隱藏值傳遞給下一頁;

+0

對不起,我想要的價值,我看到的頁面來源...... – user1950705

+0

想要獲得提交按鈕值 –

+0

我正在尋找名稱值,即「1」的編輯和「1」刪除.. ....它可以在頁面上看到src – user1950705

0

使用一個隱藏的標籤,用於存儲點擊按鈕

<input type="hidden" name="hidBt" /> 

放置值超出這個隱藏變量的值。

<label> 
    <input type="submit" name="<%=t %>" value="edit" onclick="this.form.hidBt.value=this.value;this.form.action='df1.jsp?flag=1&act=1';this.form.submit();" /> 
    <input type="submit" name="<%=t %>" value="delete" onclick="this.form.hidBt.value=this.value;this.form.action='df1.jsp?flag=1&act=1';this.form.submit();" /> 
</label>  

之後調用隱藏變量

String butValue = request.getParameter("hidBt"); 
+0

這個隱藏的標記正在顯示按鈕的名稱,即編輯或刪除 – user1950705

+0

@ user1950705:是的,這就是你在找什麼。提交按鈕的值是**編輯**和**刪除**。 –

+0

即時消息不尋找編輯或刪除.........我想獲得名稱字段的值,即「1」的編輯和「1」的刪除 – user1950705

0

正如你已經改變的onclick表單操作URL(這是一個非常貧窮的做法,但除外),爲什麼不加入行標識符也一樣?

<input type="submit" name="<%=t %>" value="edit" onclick="this.form.action='df1.jsp?flag=1&act=1&edit=<%=t%>';this.form.submit();" /> 
<input type="submit" name="<%=t %>" value="delete" onclick="this.form.action='df1.jsp?flag=1&act=1&delete=<%=t%>';this.form.submit();" /> 

這樣,你可以這樣做:

String edit = request.getParameter("edit"); 

if (edit != null) { 
    // Edit button of row "edit" was invoked. Do your job here. 
} 

String delete = request.getParameter("delete"); 

if (delete != null) { 
    // Delete button of row "delete" was invoked. Do your job here. 
} 

否則你需要一些固定標識符的前綴按鈕名稱:

<input type="submit" name="edit_<%=t %>" value="edit" onclick="this.form.action='df1.jsp?flag=1&act=1';this.form.submit();" /> 
<input type="submit" name="delete_<%=t %>" value="delete" onclick="this.form.action='df1.jsp?flag=1&act=1';this.form.submit();" /> 

所以,你可以這樣做:

for (int t = 1; t < 10; t++) { 
    if (request.getParameter("edit_" + t) != null) { 
     // Edit button on index "t" was invoked. Do your job here. 
     break; 
    } 

    if (request.getParameter("delete_" + t) != null) { 
     // Delete button on index "t" was invoked. Do your job here. 
     break; 
    } 
} 

無關到具體的問題,用這種方式寫的JSP scriptlets<% %>是自十年來認爲老學校和一個不好的做法。另請參閱How to avoid Java code in JSP files?

0

有幾種方法可以採取。

看看所有提交的領域

  • 獲取所有在他們
  • 模式提交(按this question
  • 循環的字段,直到你找到一個命名約定相匹配符合他們的名字您有提交按鈕

查找所有可能的提交按鈕名稱

  • 生成所有的提交按鈕的名稱列表,你可以有
  • 遍歷該列表嘗試,直到找到一個

鑑於你的名字是數值得到一個參數每名,可能性的數量可能不是有限的。所以第一種方法可能會更好。

相關問題