如何使用java获取活动选项卡名称或id?
下面是我在jsp中创建选项卡的html代码如何使用java获取活动选项卡名称或id?,java,html,tabs,Java,Html,Tabs,下面是我在jsp中创建选项卡的html代码 <form name="form1" action="/SampleServlet" method="post"> <ul id="navigation"> <li><a id="tab1" name="live" class="selected" onclick="parent.frame1.location='frame1.jsp'">LIVE</a></li> <li&
<form name="form1" action="/SampleServlet" method="post">
<ul id="navigation">
<li><a id="tab1" name="live" class="selected" onclick="parent.frame1.location='frame1.jsp'">LIVE</a></li>
<li><a id="tab2" name="history" onclick="parent.frame1.location='frame2.jsp'">HISTORY</a></li>
</ul>
获取所选或激活的选项卡的方法?请帮助我。我使用jquery找到了一些解决方案,但我不想使用jquery。请帮助我。如何获取当前使用request.getParameter()选择或激活的选项卡名称、id或值?请确保您没有使用重复的id,例如:将第二个链接id更改为tab2
<ul id="navigation">
<li><a id="tab1" name="live" class="selected" onclick="parent.frame1.location='frame1.jsp'">LIVE</a></li>
<li><a id="tab2" name="live" class="selected" onclick="parent.frame1.location='frame2.jsp'">HISTORY</a></li>
</ul>
- 生活
- 历史
您尝试使用
request.getparametervalues()
使用jQuery!这会让你的工作更轻松!只需在这些选项卡上注册一个单击处理程序,然后向servlet发送一个ajax请求,并将参数作为选项卡ID,非常简单!代码如下:
假设:Tab1:ID='Tab1',CLASS='tab'
Tab2:ID='Tab2',CLASS='tab'
// click handler
$('.tab').click(function(){
// get tab id
var id = $(this).attr('id');
// now send an ajax request to servlet with parameter which stores this id value
$.ajax({
type: 'GET', // request type
data: {param: id},
url: '/servleturl',
dataType: 'text', // or json or any other which your servlet will return
// this will be executed when request is successful and a correct response is recieved
success: function(response){
alert(response); // or do whatever you like to do with response
},
// this function will be executed when there is any error
error: function(){
},
// this will be always executed, like a finally block in Java
complete: function(){
},
});
});
您可以省略错误并完成函数;我已经告诉你所有必要的事情了。这很简单
要在servlet中接收ID,请使用:
String tabId = request.getParameter('param');
“param”,因为我已指定:
data: {param: id}
如果使用“param”以外的任何其他名称,请改用该名称
为了从servlet发送响应,只需使用:
PrintWriter out = response.getWriter();
out.write("ABCD or whatever you want");
out.close(); // DON'T forget this!
如果没有jQuery,将很难选择它,您必须迭代所有
a
元素才能找到它(或者需要一些其他的迭代)
a
,并读取其ID(在jQuery中为$(“a.selected”).attr('ID')
)。核心JS中没有“getElementByClass”
中,如下所示:
request.getParameter(“activetab”)
函数setTabAndSubmit(){
var选项卡;
var archors=document.getElementsByTagName(“a”);
对于(var i=0;i
您如何调用servlet?为什么不想使用jQuery?如果您想知道选择了哪个选项卡或单击了哪个选项卡,至少要为这两个选项卡指定一个不同的Id,这是有意义的。对不起。请参阅编辑的postrequest。getParameter()应该正确使用输入参数?那么我应该如何使用request.getParameter(“Id”);如果我选择tab2,它不会给出结果。最好使用jQUery>>jQUery(“.selected”)。单击(function(){});他应该使用jQuery,.click()很容易做到这一点!我没听懂你的意思。请解释我。什么是“你必须用“已选”类选择a并读取其ID”?请帮助我为什么要使用这个东西,使用隐藏元素,以及所有使用jQUery的东西都是小菜一碟!我给你的密码对你来说难吗?你对JavaScript是否满意?我改为:select意味着你必须用一个“css选择器”找到它@stalin我不确定你写的东西是不是这里的目标。您发送一个ajax请求,这与发布表单不同。我们看到页面上有4行,其余的可能不支持ajax……这是真的,但是如果我是他,我也想发送一些其他数据,而不仅仅是tabid:)
PrintWriter out = response.getWriter();
out.write("ABCD or whatever you want");
out.close(); // DON'T forget this!
<script type="text/javascript">
function setTabAndSubmit() {
var tab;
var anchors = document.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
if (anchors[i].className == 'selected') {
tab = anchors[i].id;
break;
}
}
document.forms["myform"].elements["activetab"].value = tab;
alert(tab);
}
</script>
<form name="myform" action="/path" onSubmit="setTabAndSubmit()">
<input name="activetab" type="hidden"></input>
<input name="somefield" type="text"></input>
<input type="submit" value="Submit"></input>
</form>
<a id="a1" href="#" class="selected">link 1</a>
<a id="a2" href="#">link 2</a>