这很难解释,但我会尽力而为。
我正在使用带有网络服务器的 PLC 和一些我编写的 JavaScript 代码,用于将 PLC 寄存器中的值写入您的网页。
PLC 具有的功能之一是时间表(例如,您可以选择灯必须亮起的日期和时间)。为了设置时间表,我为时间创建了一些输入框,并为一周中的每一天创建了 7 个复选框。您必须将十进制值发送给控制器,这对于小时和分钟来说没有问题。
但是,工作日用二进制数表示,但我需要将其以十进制写入控制器。
所以我有 7 个复选框,每个复选框代表一个二进制数字(所以星期一是 1,星期二是 2,星期三是 4,星期四是 8,依此类推)所以当我想从中创建一个十进制数时,这很容易,只需总结检查了哪些复选框,完成了。
但是现在我需要它,这次我从控制器得到一个十进制数(表示设置了哪些天),我需要在复选框上表示它,所以可能将十进制转换为二进制但是我如何链接复选框到单个数字?
希望有人能理解这一点并帮助我。
<input type="checkbox" id="mon"></td>
<input type="checkbox" id="tue"></td>
<input type="checkbox" id="wed"></td>
<input type="checkbox" id="thu"></td>
<input type="checkbox" id="fri"></td>
<input type="checkbox" id="sat"></td>
<input type="checkbox" id="sun"></td>
这些是我的复选框,这是我的一些 javascript:
var Weekday = 0;
if($('#mon').is(':checked')){ Weekday += 1 } //this is code to create the decimal number
if($('#tue').is(':checked')){ Weekday += 2 }
if($('#wed').is(':checked')){ Weekday += 4 }
if($('#thu').is(':checked')){ Weekday += 8 }
if($('#fri').is(':checked')){ Weekday += 16 }
if($('#sat').is(':checked')){ Weekday += 32 }
if($('#sun').is(':checked')){ Weekday += 64 }
我该如何反其道而行之?我得到一个十进制数,需要转换为二进制,然后使用 javascript 根据设置的位检查正确的复选框。
有什么建议么?