Javascript 如果验证组无效,JQuery Cycle插件需要循环到背面的下一张幻灯片
我正在使用JQuery循环插件(在单独的站点范围的自定义js文件中定义属性)在表单的两个页面(由表分隔)之间循环。每个页面上的控件都有自己的验证组。第一个页面有一个“下一步”按钮,当手动单击该按钮时,将触发第一个验证组的页面验证。如果失败,将显示工具提示,供用户更正信息。如果验证成功,则调用cycle next命令Javascript 如果验证组无效,JQuery Cycle插件需要循环到背面的下一张幻灯片,javascript,jquery,jquery-plugins,jquery-cycle,Javascript,Jquery,Jquery Plugins,Jquery Cycle,我正在使用JQuery循环插件(在单独的站点范围的自定义js文件中定义属性)在表单的两个页面(由表分隔)之间循环。每个页面上的控件都有自己的验证组。第一个页面有一个“下一步”按钮,当手动单击该按钮时,将触发第一个验证组的页面验证。如果失败,将显示工具提示,供用户更正信息。如果验证成功,则调用cycle next命令 $('#request-information').cycle('next'); 在第二个页面上,使用“提交”按钮将控件分组到第二个验证组中。单击submit按钮时,会触发服务器端
$('#request-information').cycle('next');
在第二个页面上,使用“提交”按钮将控件分组到第二个验证组中。单击submit按钮时,会触发服务器端验证,如果验证失败,则在回发时重新加载页面。所有这些都可以,除非第二页失败,我希望表单保留在第二页。因此,如果由于表单的第二页无法验证而重新加载网页,我需要将起始幻灯片设置为表单的第二页,或者如果不可能,至少触发cycle next命令
我似乎无法将startingslide设置为表单的第二页,因为这将覆盖在单独的js文件中设置的cycle函数的其他已定义属性
那么,是否有人知道如何根据第二个验证组在单击“提交”按钮时是否失败而进入回发页面加载的第二张幻灯片?或者我应该使用viewstate做一些不同的事情吗
对不起,这是一个冗长的问题。希望它清晰而不混乱。
谢谢如果您知道在加载页面时需要转到第二张幻灯片,则可以执行以下操作:
var init = { startingSlide: 1 }; // i.e. second slide, the indices are zero-based
$('whatever').cycle($.extend(init, the_name_of_your_global_default_options));
app_name_space.page_cycle_opts = { startingSlide: 1 };
您只需将init
设置为空对象文本,除非需要设置startingSlide
。如果.cycle()
位于页面之外的某个位置,则可以为页面特定的选项和调用.cycle()
的$.extend()
保留一个变量。例如,在页面中,您可以执行以下操作:
var init = { startingSlide: 1 }; // i.e. second slide, the indices are zero-based
$('whatever').cycle($.extend(init, the_name_of_your_global_default_options));
app_name_space.page_cycle_opts = { startingSlide: 1 };
然后在绑定cycle内容的JavaScript文件中:
app_name_space.page_cycle_opts = app_name_space.page_cycle_opts || { };
$('whatever').cycle($.extend(app_name_space.page_cycle_opts, default_options));
我使用app\u name\u space
作为应用程序已经使用的全局名称空间的占位符,以避免名称冲突。如果您必须在一个页面上处理多个循环实例,那么您需要按元素ID对page\u cycle\u opts
进行索引,例如:
app_name_space.page_cycle_opts['X'] = { startingSlide: 1 };
然后到别处去:
$('whatever').each(function() {
$(this).cycle($.extend(
app_name_space.page_cycle_opts[this.id] || { },
default_options
));
});
基本思想是将全局配置选项视为一组默认值,然后通过定义良好的文档机制允许页面特定重写。
对冗长问题的冗长回答。希望它清晰易懂。哇,非常感谢你的回答。谢谢你抽出时间。它非常清楚,我现在正在摆弄它。这对我会有用的。感谢您向我介绍$.extend函数。我知道必须有一种方法来添加属性,只是不知道如何添加。@DMase05:BTW,
$.extend()
修改它的第一个参数,所以如果有必要,你应该提供一个空对象作为第一个参数:x=$.extend({},a,b,…)代码>。jQuery有许多人们似乎不知道的小实用程序:。干杯