[英]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;  <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()">  <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;  <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()">  <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.