【发布时间】:2012-02-17 16:47:59
【问题描述】:
如果在提交之前未回答任何可选单选按钮,我想通知用户回答表单(以确保它们已被有意跳过)。 我的问题是,虽然我设置了一个带有多个条件的 if 语句,但当满足任何一个条件而不是满足所有条件时,if 语句返回 true。我正在使用 jQuery 1.7.1。
Javascript:
$("#optmsg").show();
function updateFormEnabledOpt() {
if (verifyOpt()) {
$("#optmsg").hide();
} else {
$("#optmsg").show();
}
}
function verifyOpt() {
if ($("#formidable input:radio[name='q11']:checked").val() !== 'undefined' && $("#formidable input:radio[name='q12']:checked").val() !== 'undefined' && $("#formidable input:radio[name='q13']:checked").val() !== 'undefined') {
return true;
} else {
return false;
}
}
$('#formidable input:radio[name="q11"]').change(updateFormEnabledOpt);
$('#formidable input:radio[name="q12"]').change(updateFormEnabledOpt);
$('#formidable input:radio[name="q13"]').change(updateFormEnabledOpt);
所以:只要三个问题中的任何一个选中了单选按钮,#optmsg 就会被隐藏。 Jsfiddle(带有一些与脚本一起使用的 html):http://jsfiddle.net/rnPA6/
更新:感谢您的帮助!我可能会以惊人的速度添加!这是一个有效的小提琴:http://jsfiddle.net/rnPA6/14/
【问题讨论】:
-
真是一团糟!!! 225 一行字符?!
-
哈哈,是的,jsFiddle 的 TidyUp 删除了换行符(+ 他们让 jsLint 无论如何都会给出验证错误)。同意换行更漂亮
标签: javascript jquery forms validation