繁体   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