问题描述
- 将jsp页面上的信息传递到action中
-
各位大神,求帮忙!!!
页面上的信息是这样:<table class="tabmenu" <c:if test="${fn:length(tabmap) < 2}">style="display:none"</c:if>> <tr> <c:forEach var="tab" items="${tabmap}" varStatus="vs"> <td class="tabitem"> <a id="${vs.index}" onclick="return clickTab(${vs.index}, this.href);" href="<c:url value='/${tab.value}'/>" class="menulink" target="main"><fmt:message key="${tab.key}"/></a> </td> <c:choose> <c:when test="${fn:length(tabmap)==vs.index+1}"> <td class="sep3" id="_${vs.index}"></td> </c:when> <c:otherwise> <td class="sep2" id="_${vs.index}"></td> </c:otherwise> </c:choose> </c:forEach> </tr> </table>
想要获取其中的 id="${vs.index}"的href,让action获取 并存在库表中。
页面的js如下:
function clickTab(tabId, href) {
try{
caCanvas.show();
var total = ${fn:length(tabmap)};
var selectedTab = document.getElementById(tabId).parentNode;
var selectedTab_ = document.getElementById("_" + tabId);
var selectedTab = document.getElementById("" + (tabId - 1));for(var i = 0; i < total; i++) { var tab = document.getElementById(i).parentNode; var tab_ = document.getElementById("_" + i); tab.className = "tabitem"; if(total == i + 1) { tab_.className = "sep3"; } else { tab_.className = "sep2"; } } selectedTab.className = "selected"; if(total == parseInt(tabId) + 1) { selectedTab_.className = "sep5"; } else { selectedTab_.className = "sep1"; } if(_selectedTab) { _selectedTab.className = "sep4"; } if(href && href.indexOf('engineTab=1') != -1){ if(typeof(eval(window.parent.frames["head"].window.displayEngineTab)) == "function"){ window.parent.frames["head"].window.displayEngineTab(""); } }else{ if(typeof(eval(window.parent.frames["head"].window.displayEngineTab)) == "function"){ window.parent.frames["head"].window.displayEngineTab("none"); } } var expires = getExpDate(30, 0, 0); var id = "<c:out value='${id}' default='' />" addMainCookie(nameSpace + "tabmenu", id + "<"+tabId); dealEngineIcon(href); return true; }catch(e){} }
上面function中的href就是我所需要传递的值,我查看网上有说是用AJAX的还有使用隐藏域的还有使用session的 可是我都用了不好使,也许是我写错了 ,求各位大神看看能不能帮帮小弟,怎么写出来,思路是什么样的?谢谢谢谢谢
解决方案
click 事件需要Return的么?
解决方案二:
楼主你好,通过你的帖子我看到这个 href属性属于 a 元素的值,但是你的 a 元素是在 标签的循环体内的,也就是说这个 href 是一系列 a 元素的属性值;
//jquery的访问方法
$(".menulink").each(function(i,obj){
alert($(obj).attr("href"));//遍历你的 每一个href,自己处理形成 待提交的 值;
});
var params={href:href};//你的提交参数
var yourUrl;//你的提交action
Ajax.get(yourUrl,params,function(json){
//处理返回值
});
// 上述js需要加载 jquery.js
解决方案三:
我理解,楼主的意思是希望在点击a标签后需要将当前id的href传给Action,
这样的话可以使用的方法有很多,楼主提到的几个方法都可以做到,
利用Ajax传递参数可能是最方便的方法,
建议你先发布,看看这个页面编译后浏览器里页面html源代码是否是你想要的