在我的电子应用程序中,我具有在按下按钮时清除输入字段的功能,但是使用它之后,我无法再单击并键入输入内容。但是,如果我打开检查器窗口,它们将再次起作用。
为什么会发生这种情况以及如何解决?
电子应用程序的main.js:
const { app, BrowserWindow, Menu } = require('electron');
let win;
function createWindow() {
win = new BrowserWindow();
win.loadFile('window_main/index.html');
}
app.on('ready', createWindow);
index.html
<body>
<input type="text" id="testinput" />
<button id="clear">Clear</button>
<script src="index.js" type="text/javascript"></script>
</body>
index.js中的JS有点问题:
document.getElementById('clear').addEventListener("click", clear);
function clear() {
if (confirm("Clear all inputs?")) {
document.querySelectorAll('input').forEach((input) => {
input.value = '';
})
}
}
答案 0 :(得分:0)
我在删除脚本后重现了您的代码,该脚本没有解释您为什么使用它,无论如何,下面是使用jQuery的代码可以解决问题,至少应该将您带到正确的位置..如果仍然无法正常工作与您一起发布更好的代码说明,以获得更好的帮助... 如果可以解决您的问题,则将其标记为已回答。...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<title>Document</title>
</head>
<body>
<input type="text" id="testinput" />
<button id="clear">Clear</button>
<script>
$(document).ready(()=>{
document.getElementById('clear').addEventListener("click", clear);
})
function clear() {
if (confirm("Clear all inputs?")) {
document.querySelectorAll('input').forEach((input) => {
$(input).val('');
})
}
}
</script>
</body>
</html>
答案 1 :(得分:0)
问题不是清除输入,而是showing the confirm box。我改用了以下代码段:
dialog.showMessageBoxSync(
title: "Clear inputs",
message: "Clear all input boxes?",
type: "warning",
buttons: ["Cancel", "Ok"]
})
现在一切正常。