2012-05-01 12 views
1

我有一个非常大的表单,包含约40个问题。我将问题分成几部分,每部分10个,每个都包含在一个div中。不执行jQuery,除非所有表单域已完成

我使用jQuery滑动进出

$('a.nextform').click(function(e){ 
     $('.hold-all').animate({"left": "-=690"}, 500); 
     e.preventDefault(); 
    }) 
$('a.backform').click(function(e){ 
     $('.hold-all').animate({"left": "+=690"}, 500); 
     e.preventDefault(); 
    }) 

我想以某种方式说,如果还没有执行完毕的requeired领域,不要允许用户点击旁边的div,这可能与jQuery ?其空使用

$('#name').val()

例如

if($('#name').val() != ''){ 
//do 
} 
else 
{ 
//dont do 
} 

回答

0

给予输入ID,例如<input id='name' type='text'/>

然后检查用JQuery输入按钮:see w3schools例如$(button).attr('disabled', 'disabled')。您还可以在$(form).submit上放置一个处理程序,并阻止默认并返回false。您还可以在上面的点击处理程序上执行return false以防止执行更多点击代码。

0

如果您可以设置属性禁用= “禁用”

0

您可能也想将验证分为几个阶段,即在输入全部在当前div上验证之前,不要移动到下一个div。

jQuery的表单验证有多种插件供您使用,您可以从http://docs.jquery.com/Plugins/Validation开始。

然后你可以使用.valid()来检查是否移动或显示错误,快速粗略的例子:

$('a.nextform').click(function(e){ 
if ("#myform").valid()) { 
$('.hold-all').animate({"left": "-=690"}, 500); 
    e.preventDefault(); 
} 
} 
... 
0

当然。遍历每个输入字段 - 您可以使用字段集对其进行分组,并使用类似.children('input,textarea')的内容 - 检查每个输入并验证给定输入是否有值。

0

如果您为所有表单域手动编写这将是疯狂和困难的。向列表中添加或删除字段很快会使该过程难以维护,管理和跟踪。

你所面临的问题是很常见的,也是一个解决一个:“验证”

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

基本上添加“要求”到是强制性的任何领域的CSS类。调用在窗体上或表单的容器上运行验证插件。

当用户点击下一步调用$(“#形式问题”)。验证()

如果验证返回true,滑入下一格。如果返回false没有。验证插件还可以将验证消息添加到验证失败的字段末尾,和/或提供失败约束的验证摘要消息:有关更多详细信息,请参阅文档。

http://jquery.bassistance.de/validate/demo/

+0

我唯一担心@ reach4thelasers的是,有更多需要的表格是显示:这意味着第一个div形式后出现没有全部completem将插件不会看到这些标记为空,不跑? – Liam

+0

只需单独验证每一个,分别在每个子部分的表单/容器上运行验证插件,并从每个子部分的下一个按钮处理函数调用validate()。 $(“#form1”)。validate()$(“#form2”)。validate() – reach4thelasers

相关问题