[英]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.