2013-06-03 127 views
1

我想创建一个简单的验证表单,其中必须选择复选框或选择框值,否则会弹出一条消息。很简单,但我搞砸了一些小事,因为我无法得到它的工作。需要复选框和下拉列表

if ((strUser == 0) && (getElementById("somename").checked == false)) 
    alertMsg += "\n- Donation Amount"; 

Code Demo

------------------------更新------------- ----

在看到我的问题的一部分是在jsfiddle后,我能够缩小它以使它使用它。我还更新了上面的链接以显示一个工作示例。

var strUser = +Donation.options[Donation.selectedIndex].value; 
if ((strUser == 0) && (somename.checked == false)) alertMsg += "\n- Donation Amount"; 
+0

您是否定义了函数'getElementById'?或者你的意思是'document.getElementById'?如果控制台“不能正常工作”,控制台应该显示一个错误。 –

+1

你的小提琴会给出错误'ReferenceError:validateForm没有定义',因为函数是在'load'事件处理程序中定义的,它不是全局的。我不知道这是否是你的问题。请提供更多信息。 “不起作用”不是一个有用的错误描述。 –

回答

2

的错误是最有可能在这里:

var strUser = e.options[e.selectedIndex].value; 

这个HTML元素的值是一个字符串,和所有字符串,不是空字符串等,都是truthy。

最简单的解决将是该值转换为数字,让你得到的(falsy)数字零,而不是字符串“0”

var strUser = +e.options[e.selectedIndex].value; 

当然还是只是测试选定的指数直接

var strUser = e.selectedIndex; 
+0

+1使用“truthy”这个词 –

+0

小提琴还有许多其他问题。 –

+0

@Felix - 当然。对于初学者来说,他有一种不需要的。但是,嘿,我们都开始:) –