使用Node.js评估复选框位置

时间:2019-09-15 10:24:52

标签: node.js

我需要使用nodejs检查拨动开关的位置。这是我尝试做的事的一个示例:

** index.html **基于W3Schools:

override func viewDidLoad() {
    super.viewDidLoad()
    NotificationCenter.default.addObserver(self, selector: #selector(willEnterForeground),
                                           name: Notification.Name.UIApplicationWillEnterForeground,
                                           object: nil)
}

@objc func willEnterForeground() {
   // do what's needed
}

和节点应用程序:

app.js

    <!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch input { 
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}
</style>
</head>
<body>

<h2>Toggle Switch</h2>


<label class="switch">
  <form id= "test" method="POST" action="test">
  <input type="checkbox" checked>
  <span class="slider round"></span>
</label>
</form>

</body>
</html> 

所以我的问题是如何使用nodejs找出甚至设置此滑块的位置! 提前致谢!

2 个答案:

答案 0 :(得分:1)

您的问题是您没有表单的提交调用,您可以将onClick属性添加到复选框输入中以提交表单:

<input type="checkbox"
   name='switch'
   onClick="document.forms['test'].submit();"
   checked>

注意:不要忘了给您的输入一个名称,以确定后端(node.js)中的复选框状态

答案 1 :(得分:1)

因此,如果我正确理解了您的问题,则您有一些想要同时获取/设置其属性的类。如果是这样,我建议在HTML中使用数据属性,您可以通过替换在文件中在nodejs中设置它们(因为您使用的是原始html),然后您将获得它们并通过DOM中的js返回到节点。

然后,我将通过以下方式在html文件中写入raw来在node中设置参数:(<div class="whatever" data-somewhat-position='-POSITION WHATEVER-'>)并像这样替换它:

let newPosition = // new position here
fs.readFile('file.html',(err,data)=>{String(data).replace('-POSITION WHATEVER-',newPosition)) }

这将使用设置的数据呈现html,您可以将其提取到DOM中并进行操作(即,更改类的样式)。

如何提取数据,已在此处回答:get data attributes in JavaScript code

因此,您提取数据,将其序列化为表格,然后将其保存为NODE。

这当然不是最有效的方法,但我希望您能理解。