2013-06-03 60 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 - 當然。對於初學者來說,他有一種不需要的。但是,嘿,我們都開始:) –