2010-01-26 89 views
1

我真的很头痛,试图让jQuery验证插件工作。JQuery验证插件:根据单选按钮值使输入需要

我有一个表单,第一个问题要求用户从收音机组中选择一个选项。这显示了下面的进一步问题,取决于他们的选择。

我想要实现的是明显需要的问题,但显然取决于用户在第一个问题中选择了什么 - 即。如果问题不可见,则不需要。

的形式可以在这里看到: http://planner.adamturtle.com/index.php?id=cab11f902671b3c2d6&page=2

所有的JavaScript代码嵌入到页面上。

感谢您的帮助。

+0

的内嵌的javascript有点令人困惑(因为我无法立即理解它...但后来我对jQuery有点新鲜了) - 我建议删除所有这样做的尝试,以便人们可以看到代码的哪些元素实际工作。 – 2010-01-26 15:22:37

回答

0

jQuery验证插件允许您添加自定义验证方法,您可能需要尝试这些方法。在此方法内部,您可以检查收音机框的值,并根据该信息检查其他字段值。

添加自定义验证的方法称为addMethod(文档链接here)。

0

如果所有问题都是必需的 - 无论如何 - 您可能只需验证全部字段。

但是,这只会在你使用某种Ajax调用来填充表单时才起作用。这样就不会试图验证没有显示的问题。例如:

例如:有一个包含您想要嵌入的HTML的字符串。

var formString1 = '<input type="text" name="thisInput" />'; 
    formString1 = '<input type="radio" name="anotherInput" />; 
    ... 

然后将每个表单字符串注入给定的表单。

OR

发出与class="required"验证形式的请求。您可以添加哪个,取决于单击哪个单选按钮。

的jQuery:

validate($(.required)); 

function validate(elements){ 
    $.ajax(//send request to validate 'elements); 
} 

这是一个有点脏,不使用形式验证插件和都未测试,但它可能给你一些方向。

编辑: 你有PHP后台验证了一套系统?

+0

嗨德里克, 感谢您的回复。 我敢肯定,这是可能的使用验证插件方法,所以如果有一种解决方案,它会好得多。 我同意你的评论关于删除以前的尝试,我会把它们拿出来。 PHP后端程序由我撰写,非常基本,因为我不是开发人员。我甚至不认为我有内置的服务器端验证!虽然这不是当前的优先事项。 – Adam 2010-01-26 16:19:59

+0

服务器端验证对于实时应用程序是必不可少的。如果您纯粹依靠javascript进行输入验证 - 只需通过禁用javascript即可注入恶意内容。如果你正在寻找jQuery验证内容,你似乎需要查看RaYell提供的文档链接。 – 2010-01-26 17:44:29

2

为了收集可见的元素:

$currentInputs = $("input:visible"); 

我会为了提高可读性做的是分配所有“活动”输入中包含“validateMe”一类的验证:

$currentInputs = $("input.validateMe"); 
$result = $currentInputs.validate();