2017-07-31 20 views
1
if (map == "checked") { 
    alert("map ok") 
} 
if (joueurs == "ckecked") {  
     alert("joueurs ok") 
} 
if (point == "checked") { 
     alert("points ok") 
} 

不需要解釋實際輸出,並且我知道所有if語句完全錯誤。我只是想表明它是一個明顯的例子。如何根據Javascript中檢查的內容警告特殊事物

我希望輸出如下:如果所有三個選中的都是「地圖選手點確定」,如果只選中了選手和地圖,則選擇「選手地圖確定」,只選中「選手」 ...

詢問是否要HTML(真的不認爲這是必要的)

問題部分解決:

if ((document.getElementById("joueurs").checked == true)) { 

     alertContent = alertContent + nbjoueur + " Joueur(s), dont " + $bot.length + " bot(s) | " 
    } 

if ((document.getElementById("map").checked == true)) { 

    alertContent = alertContent + "Map : " + map + " | " 
} 

if ((document.getElementById("points").checked == true)) { 
    var pointin=$.trim($("#pointsinput").val()); 
    if($("#pointsinput").val().length > 0) { 

    alertContent = alertContent + "Partie a " + points + " point(s) |" 
    } 
    else { 
alert("Le champ points n'est pas rempli !"); 
return; 
    } 
    alert(alertContent); 
window.open('mailto:[email protected]?subject=Formulaire Quake&body=' + alertContent); 

} 

的問題是,郵件正文是空的,但警報返回正確的文字...

回答

0

您需要在顯示之前構建輸出。所以,在這個例子中,你已經提供:

var alertContent = ""; 
if (map == "checked") { 
    alertContent = "map"; 
} 
if (joueurs == "checked") { 
    alertContent = alertContent + (alertContent) ? " " : "" + "joueurs"; 
} 
if (point == "checked") { 
    alertContent = alertContent + (alertContent) ? " " : "" + "points"; 
} 
if (alertContent) alert(alertContent + " ok"); 

唯一的複雜性增加,其中所需要的單詞之間的空格 - 這是什麼(alertContent) ? " " : ""報表做的。

+0

好了,它是如此簡單,只是一個問題,當(alertContent)在括號之間時意味着什麼? – Mazeo

+0

alertContent是字符串變量的名稱。在這種情況下,alertContent +(alertContent)? 「」:「」+「joueurs」;韋恩把它放在括號裏,以確定它是三元運算符的謂詞。 – Aron

+0

如果條件的結果是「真值」,那麼Javascript'if'語句被認爲是正確的。有許多不同類型的「真值」,其中一個是非空字符串。所以,在這種情況下,我正在測試alertContent不是空的。 –

1

另一種方法是使用一個數組並加入用空格陣列來生成消息:

var items = []; 

if (map == "checked") { 
    items.push("map"); 
    alert("map ok") 
} 
if (joueurs == "ckecked") { 
    items.push("player");  
    alert("joueurs ok") 
} 
if (point == "checked") { 
    items.push("point"); 
    alert("points ok") 
} 

if(items.length > 0){ 
    var message = items.join(" ") + "ok"; 
    alert(message);  
} 

而另一選擇將是掩模變量:

var mask = 0; 

if (map == "checked") { 
    mask += 1; 
    alert("map ok"); 
} 
if (joueurs == "ckecked") { 
    mask += 2;  
    alert("joueurs ok"); 
} 
if (point == "checked") { 
    mask +=4; 
    alert("points ok"); 
} 

if(mask == 7){ 
    alert("map player point ok"); 
} 
else if (mask == 3){ 
    alert("player map ok"); 
} 
else if (mask == 1){ 
    alert("player ok"); 
}