有什麼不對的代碼:問題的邏輯或
if (Gender != "M" || Gender != "F")
{
alert("Please enter gender." + Gender);
document.getElementById("gender").focus();
return false;
}
有什麼不對的代碼:問題的邏輯或
if (Gender != "M" || Gender != "F")
{
alert("Please enter gender." + Gender);
document.getElementById("gender").focus();
return false;
}
你可能意味着and
,而不是or
:
if (Gender != "M" && Gender != "F")
條件將永遠是正確的,因爲如果Gender == 'M'
那麼這將是!= 'F'
和反之亦然。
如果您使用的是下拉列表,我們假設您有3個值,例如:空字符串「M」和「F」。
在這種情況下,我會檢查空字符串,以簡化的邏輯問題:
if (Gender == "")
{
alert("Please enter gender." + Gender);
document.getElementById("gender").focus();
return false;
}
你的條件,如寫的,始終是真實的
如果性別是「 M「,那麼(Gender!=」F「)是真的。
如果Gender爲「F」,則(Gender!=「M」)爲真。因此,如果Gender爲「M」或「F」,則(Gender!=「M」|| Gender!=「F」)爲真,這意味着您的代碼塊將始終執行。
@凱是正確的 - 你想邏輯和。在英文中,你想問:
如果性別不是M而性別不是F,那麼詢問用戶的性別。
編輯:糾正了我的逆轉結果。
它讀成:
if (gender is not male OR gender is not female)
{
//
}
比方說,性別是男:因爲性別不是女性,if
評估爲true
。
現在如果性別是女性:因爲它不是男性,所以if
再次評估爲true
。
你打算說如果性別既不是男性也不是女性,對吧?正如其他人所建議的,你必須在這裏使用AND。
if (gender is not male AND gender is not female)
//which is
if (Gender != "M" && Gender != "F")
+1對於很好的解釋。 – anddoutoi
我在DropDown中使用,所以我的意思是OR。 – RKh
那麼,如果你使用OR,那麼這個語句將總是返回true。爲什麼有這個聲明呢? – Kai
凱是對的。您的測試將始終如此,因爲如果用戶選擇性別= M,則Gender!=「F」部分爲true。 – Janusz