我想在点击标签时提交表单。这就是我到目前为止所做的:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Submit a Form on Tab Click</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<style type="text/css">
</style>
<script>
$(function() {
$( "#Main" ).tabs();
});
</script>
<script>
$(document).ready(function(){
$('#Tab1').click(function(){
$('#Form_1').submit();
});
</script>
</head>
<body>
<div id="Main">
<ul>
<li><a href="#Tab1">Tab1</a></li>
<li><a href="#Tab2">Tab2</a></li>
<li><a href="#Tab3">Tab3</a></li>
<li><a href="#Tab4">Tab4</a></li>
<li><a href="#Tab5">Tab5</a></li>
<li><a href="#Tab6">Tab6</a></li>
</ul>
<form id="Form_1" action="Tab_Click_v00.html" method="post">
<input type="hidden" name="Nb_var99" value="1">
</form>
<div id="Tab1">
<p>Tab1</p>
</div>
<div id="Tab2">
<p>Tab2</p>
</div>
<div id="Tab3">
<p>Tab3</p>
</div>
<div id="Tab4">
<p>Tab4</p>
</div>
<div id="Tab5">
<p>Tab5</p>
</div>
<div id="Tab6">
<p>Tab6</p>
</div>
</div>
</body>
</html>
每个标签都会提交一份不同的表格。我希望这有助于确定我想要的东西 实现。我是新手,所以请具体说明。
谢谢。
答案 0 :(得分:1)
你可以使用这个jQuery:
$(document).ready(function() {
$( "#Main" ).tabs();
$('[id^=ui-id-]').click(function() {
var tabId = $(this).attr('id');
alert('Tab clicked: ' + tabId );
if (tabId == 'ui-id-1') {
$('#LoginForm').submit();
}else if (tabId == 'ui-id-2') {
$('#form2').submit();
}else if (tabId == 'ui-id-3') {
$('#form3').submit();
}
});
});
jQueryUI标签都有以ui-id-#
开头的ID,其中#是标签号(例如ui-id-3
。
选择器$('[id^=ui-id-]')
表示:对于ID属性以ui-id-
开头的任何元素,请捕获click事件并执行此操作...
请注意,<form>
标记必须具有ID属性,如上面的代码所示。例如,对于选项卡3上的表单:
<form id="form3" action="whatever.php" method="POST">
假设每个选项卡上都有一个表单,例如,表单都有ID,这些ID根据它们所在的选项卡顺序编号,例如Form-1,Form-2,Form-5等。然后您可以使用第var tabId = $(this).attr('id')
行来执行此操作:
$(document).ready(function() {
$( "#Main" ).tabs();
$('[id^=ui-id-]').click(function() {
var tabId = $(this).attr('id'); //ui-id-4
var tabNum = tabId.split('-')[2]; //4
$('#Form-' + tabNum).submit();
});
});
例如,假设标签的ID为ui-id-4
,那么您需要为标签4的<form>
提供ID:<form id="Form-4">
。然后,上面的代码会在单击选项卡时提交该表单。
请注意,上面的代码要求您的表单标记具有ID,例如:
<form id="myFormId" action="somepage.php" method="POST" >
答案 1 :(得分:0)
假设您的表单的ID为“myform”,您可以在选项卡上放置一个click事件监听器。
在标签class='tab'
$('.tab').on('click', function(){
$('#myform').submit();
});
答案 2 :(得分:0)
标签小部件包含一些您可以使用的事件。例如,激活选项卡时,您可以拥有the activate
event的处理程序。您可以使用标准的jQuery事件处理,并指定tabsactivate
事件。像这样:
$('#Main').on('tabsactivate', function (event, ui) {
// your logic here
$('#someForm').submit();
});
您可以检查传递给该事件处理程序的ui
参数,以获取有关该选项卡的信息。例如,特定选项卡从/向移动。像:
if (ui.oldPanel.selector == '#Tab1') {
// The user just left Tab1
}
因此,在该处理程序中,您将执行选项卡更改时需要执行的任何任务。
答案 3 :(得分:0)
首先,每个标签都可以引用每个必须在标签点击上提交的表单。
<ul>
<li><a href="#Tab1" data-form="#f1">Tab1</a></li>
<li><a href="#Tab2" data-form="#f2">Tab2</a></li>
<li><a href="#Tab3" data-form="#f3">Tab3</a></li>
<li><a href="#Tab4" data-form="#f4">Tab4</a></li>
<li><a href="#Tab5" data-form="#f5">Tab5</a></li>
<li><a href="#Tab6" data-form="#f6">Tab6</a></li>
</ul>
然后将点击事件绑定到每个标签:
$("#Main").on("click", "a", function() {
var formId = $(this).data("form");
$(formId).submit();
});
答案 4 :(得分:0)
简单的方法是为每个<a>
和<form>
分配一个id属性,然后执行以下操作:
<script type="text/javascript">
$(document).ready(function(){
$('#tab1').click(function(){
$('#form1').submit();
});
$('#tab2').click(function(){
$('#form2').submit();
});
$('#tab3').click(function(){
$('#form3').submit();
});
});
</script>
小提琴示例here