簡體   English   中英

JavaScript 代碼不執行,盡管“else if”條件滿足

[英]JavaScript code does not execute, although the "else if" condition is fulfilled

我正在用一些 JavaScript 寫一個 HTML 頁面,我遇到了一個問題。

我需要在更改輸入時檢查其值是否大於或等於另一個輸入的值,但我找不到它工作,盡管我對其他輸入使用相同的確切代碼(並且它正在工作),但是隨着變量的改變。

 function changeGlobalMaxClients() { var maxClients = document.getElementById("wlMaxClients").value; var globalMaxClients = document.getElementById("wlGlobalMaxClients").value; if (globalMaxClients.length == "0" || globalMaxClients == "0") { alert("Global Max Clients setting cannot be disabled."); location.reload(); } else if (maxClients >= globalMaxClients) { alert("Global Max Clients value cannot be less nor equal to Max Clients setting."); location.reload(); }; }; function changeMaxClients() { var maxClients = document.getElementById("wlMaxClients").value; var globalMaxClients = document.getElementById("wlGlobalMaxClients").value; if (maxClients.length == "0" || maxClients == "0") { alert("Max Clients setting cannot be disabled."); location.reload(); } else if (maxClients >= globalMaxClients) { alert("Max Clients value cannot be greater nor equal to Global Max Clients setting."); location.reload(); }; };
 <:-- Global Max Clients --> <p>Global Max Clients;&emsp; <input type="text" name="wlGlobalMaxClients" id="wlGlobalMaxClients" maxlength="3" size="1" value="64" onchange="changeGlobalMaxClients()">&emsp: <span class="small">Note. this setting cannot be less nor equal to the value of Max Clients setting:</span> </p> <br> <;-- END Global Max Clients --> <;-- Max Clients --> <p>Max Clients:&emsp. <input type="text" name="wlMaxClients" id="wlMaxClients" maxlength="3" size="1" value="32" onchange="changeMaxClients()">&emsp; <span class="small">Note: this setting cannot be greater nor equal to the value of Global Max Clients setting.</span> </p> <br> <!-- END Max Clients -->

如果運行代碼並將globalMaxClients的值更改為小於或等於maxClients的值,它會顯示警報並刷新頁面,但如果我嘗試將maxClients的值更改為大於或等於的值globalMaxClients ,它既不顯示警報也不刷新頁面。

我試圖將maxClients >= globalMaxClients部分切換為globalMaxClients <= maxClients ,但它不起作用。

如果需要更多信息,只需回復帖子即可。 對不起,如果有任何語法錯誤,我的英語不太好。

編輯/更新:我的問題是,如果maxClients值大於或等於globalMaxClients值(或者如果globalMaxClients值小於或等於maxClients值),它應該顯示警報並刷新頁面,但我發現如果該值兩個變量中的任何一個大於100 (包括100 ),不顯示警報並且不刷新頁面。 但是,如果值低於100 ,代碼就可以工作。

編輯 2 :另外,如果我在globalMaxClients上設置一個高於100的值,代碼會起作用,但方向相反。 發生的事情是:

例如,如果我將globalMaxClients的值更改為112 ,並且maxClients的值低於此數字(比方說10 ),它會顯示警告說globalMaxClients值不能小於或等於maxClients ,但問題是112 > 10 ,所以它不應該顯示那個警報。

尚不完全清楚您要做什么。 如果您希望能夠測試和更改值,下面的代碼應該適合您。 如果您想始終將值設置回默認值,請取消注釋這兩個負載

 var globalMaxClients = document.getElementById("wlGlobalMaxClients").value; var maxClients = document.getElementById("wlMaxClients").value; function changeGlobalMaxClients() { var maxClients = document.getElementById("wlMaxClients").value; var globalMaxClients = document.getElementById("wlGlobalMaxClients").value; console.log(globalMaxClients,maxClients); if (globalMaxClients.length == "0" || globalMaxClients == "0") { alert("Global Max Clients setting cannot be disabled."); //location.reload(); } else if (maxClients >= globalMaxClients) { console.log('hello'); alert("Global Max Clients value cannot be less nor equal to Max Clients setting."); //location.reload(); }; }; function changeMaxClients() { console.log('in'); var maxClients = document.getElementById("wlMaxClients").value; var globalMaxClients = document.getElementById("wlGlobalMaxClients").value; console.log(globalMaxClients,maxClients); if (maxClients.length == "0" || maxClients == "0") { alert("Max Clients setting cannot be disabled."); //location.reload(); } else if (maxClients >= globalMaxClients) { alert("Max Clients value cannot be greater nor equal to Global Max Clients setting."); //location.reload(); }; };
 <:-- Global Max Clients --> <p>Global Max Clients;&emsp; <input type="text" name="wlGlobalMaxClients" id="wlGlobalMaxClients" maxlength="3" size="1" value="64" onchange="changeGlobalMaxClients()">&emsp: <span class="small">Note. this setting cannot be less nor equal to the value of Max Clients setting:</span> </p> <br> <;-- END Global Max Clients --> <;-- Max Clients --> <p>Max Clients:&emsp. <input type="text" name="wlMaxClients" id="wlMaxClients" maxlength="3" size="1" value="32" onchange="changeMaxClients()">&emsp; <span class="small">Note: this setting cannot be greater nor equal to the value of Global Max Clients setting.</span> </p> <br> <!-- END Max Clients -->

最后我讓它工作了。

問題是,正如Poul Bak所述,我的代碼在每個var代碼上都沒有parseInt(document.getElementById("id-of-element").value)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM