如何在 JQuery 步中有两个按钮
How to have two buttons in JQuery Steps
我真的需要一些帮助。所以我正在使用一个 Jquery Steps PlugIn。现在在这个插件中,当我们转到 last tab
它有一个按钮名称为 "Finish" 当点击调用 "onFinishing"
方法时。
onFinishing: function () {
var loadedPrefix = MyNamespace.loadedPrefix;
var inputBoxPrefix = $('#SitePrefix').val();
$.ajax({
type: 'POST',
url: '/Settings/IsPrefixExists',
data: { newPrefix: inputBoxPrefix, prefixLoadedFromDB: loadedPrefix },
success: function (data) {
// do some stuff here
}
},
error: function () {
DisplayError('Failed to load the data.');
}
});
}
现在上面的工作完全正常。但是我的经理希望我在那里有两个按钮。一个为 "Save",另一个为 "Submit"。单击它们中的每一个将执行不同的操作。但是这个插件只有一个 "Finish" 按钮。它是通过插件的 Javascript 代码生成的。我能以某种方式使用 JQuery/Javascript 在那里多一个按钮,并针对它编写一些代码吗?
JS FIDDLE 样本:JS FIDDLE SAMPLE
图 1:
我想要像下面这样的东西
图片 2:
示例示例:
JS FIDDLE
无论使用步骤插件,您都可以在最后一步添加一个保存按钮,并像使用任何普通按钮一样绑定点击处理程序:
<input id='btnSave' name='btnSave' value='Save' type='button'>
在你的 javascript:
$('#btnSave').click(function() {
$.ajax({
type: 'POST',
url: '/Settings/SavePrefix',
data: { newPrefix: inputBoxPrefix, prefixLoadedFromDB: loadedPrefix },
success: function (data) {
// do some stuff here
}
},
error: function () {
DisplayError('Failed to save the data.');
}
});
});
您也可以根据需要注入按钮。
在 id 为 #steps-uid-8
的标签内使用默认插件,您可以获得带有 $('#steps-uid-8 a').last()
的完成元素;它嵌套在 <li>
中,而 <li>
又在 <ul>
中,因此您可以获得对 ul $('#steps-uid-8 a').last(),parent().parent()
的引用
使用该引用,您可以添加一个超链接,这样您的 "button" 就具有与插件相同的样式,如下所示:
$('#steps-uid-8 a').last().parent().parent().prepend("<li><a id='btnSave' name='btnSave'>Save</a></li>");
您还可以在设置中添加一项功能,以便在需要时仅在最后一步显示“保存”按钮
var numberOfSteps=3,// change as needed
var settings = {
onStepChanged: function (event, currentIndex, priorIndex)
{
if(currentIndex==numberOfSteps) $('#btnSave').show();
else $('#btnSave').hide();
}
}
使用你的 fiddle,onload Javascript 被简单地改变了。
<script>
function saveMe() {
alert('Saving');
}
$(window).load(function() {
var lastStep = 2;
$("#example-basic").steps({
headerTag: "h3",
bodyTag: "section",
transitionEffect: "slideLeft",
onStepChanged: function(event, currentIndex, priorIndex) {
//console.log(currentIndex);
if (currentIndex == lastStep) $('#btnSave').show();
else $('#btnSave').hide();
},
autoFocus: true,
onFinishing: function() {
alert("Hello");
},
}).find('a')
.last().parent().parent()
.prepend("<li><a style='display:none' href='#save' id='btnSave' name='btnSave' onclick='saveMe()'>Save</a></li>");
});
</script>
使用在 Steps plugin documentation...
中找到的 onStepChanged
事件
你可以这样做:
$( window ).load(function() {
$("#example-basic").steps({
headerTag: "h3",
bodyTag: "section",
transitionEffect: "slideLeft",
autoFocus: true,
onFinishing: function () {
alert("Hello");
},
onStepChanged:function (event, currentIndex, newIndex) {
console.log("Step changed to: " + currentIndex);
if(currentIndex == 2){
console.log("ok");
var saveA = $("<a>").attr("href","#").addClass("saveBtn").text("Save");
var saveBtn = $("<li>").attr("aria-disabled",false).append(saveA);
$(document).find(".actions ul").prepend(saveBtn)
}else{
$(".actions").find(".saveBtn").remove();
}
return true;
},
});
// on Save button click
$(".actions").on("click",".saveBtn",function(){
alert("Saving!");
});
});
我真的需要一些帮助。所以我正在使用一个 Jquery Steps PlugIn。现在在这个插件中,当我们转到 last tab
它有一个按钮名称为 "Finish" 当点击调用 "onFinishing"
方法时。
onFinishing: function () {
var loadedPrefix = MyNamespace.loadedPrefix;
var inputBoxPrefix = $('#SitePrefix').val();
$.ajax({
type: 'POST',
url: '/Settings/IsPrefixExists',
data: { newPrefix: inputBoxPrefix, prefixLoadedFromDB: loadedPrefix },
success: function (data) {
// do some stuff here
}
},
error: function () {
DisplayError('Failed to load the data.');
}
});
}
现在上面的工作完全正常。但是我的经理希望我在那里有两个按钮。一个为 "Save",另一个为 "Submit"。单击它们中的每一个将执行不同的操作。但是这个插件只有一个 "Finish" 按钮。它是通过插件的 Javascript 代码生成的。我能以某种方式使用 JQuery/Javascript 在那里多一个按钮,并针对它编写一些代码吗?
JS FIDDLE 样本:JS FIDDLE SAMPLE
图 1:
我想要像下面这样的东西
图片 2:
示例示例: JS FIDDLE
无论使用步骤插件,您都可以在最后一步添加一个保存按钮,并像使用任何普通按钮一样绑定点击处理程序:
<input id='btnSave' name='btnSave' value='Save' type='button'>
在你的 javascript:
$('#btnSave').click(function() {
$.ajax({
type: 'POST',
url: '/Settings/SavePrefix',
data: { newPrefix: inputBoxPrefix, prefixLoadedFromDB: loadedPrefix },
success: function (data) {
// do some stuff here
}
},
error: function () {
DisplayError('Failed to save the data.');
}
});
});
您也可以根据需要注入按钮。
在 id 为 #steps-uid-8
的标签内使用默认插件,您可以获得带有 $('#steps-uid-8 a').last()
的完成元素;它嵌套在 <li>
中,而 <li>
又在 <ul>
中,因此您可以获得对 ul $('#steps-uid-8 a').last(),parent().parent()
使用该引用,您可以添加一个超链接,这样您的 "button" 就具有与插件相同的样式,如下所示:
$('#steps-uid-8 a').last().parent().parent().prepend("<li><a id='btnSave' name='btnSave'>Save</a></li>");
您还可以在设置中添加一项功能,以便在需要时仅在最后一步显示“保存”按钮
var numberOfSteps=3,// change as needed
var settings = {
onStepChanged: function (event, currentIndex, priorIndex)
{
if(currentIndex==numberOfSteps) $('#btnSave').show();
else $('#btnSave').hide();
}
}
使用你的 fiddle,onload Javascript 被简单地改变了。
<script>
function saveMe() {
alert('Saving');
}
$(window).load(function() {
var lastStep = 2;
$("#example-basic").steps({
headerTag: "h3",
bodyTag: "section",
transitionEffect: "slideLeft",
onStepChanged: function(event, currentIndex, priorIndex) {
//console.log(currentIndex);
if (currentIndex == lastStep) $('#btnSave').show();
else $('#btnSave').hide();
},
autoFocus: true,
onFinishing: function() {
alert("Hello");
},
}).find('a')
.last().parent().parent()
.prepend("<li><a style='display:none' href='#save' id='btnSave' name='btnSave' onclick='saveMe()'>Save</a></li>");
});
</script>
使用在 Steps plugin documentation...
中找到的onStepChanged
事件
你可以这样做:
$( window ).load(function() {
$("#example-basic").steps({
headerTag: "h3",
bodyTag: "section",
transitionEffect: "slideLeft",
autoFocus: true,
onFinishing: function () {
alert("Hello");
},
onStepChanged:function (event, currentIndex, newIndex) {
console.log("Step changed to: " + currentIndex);
if(currentIndex == 2){
console.log("ok");
var saveA = $("<a>").attr("href","#").addClass("saveBtn").text("Save");
var saveBtn = $("<li>").attr("aria-disabled",false).append(saveA);
$(document).find(".actions ul").prepend(saveBtn)
}else{
$(".actions").find(".saveBtn").remove();
}
return true;
},
});
// on Save button click
$(".actions").on("click",".saveBtn",function(){
alert("Saving!");
});
});