【发布时间】:2018-08-28 23:25:01
【问题描述】:
我有一个 html 文件 index.html,当用户在文本框中键入时,它会从文件 app.js 调用 javascript 函数。基本上,目的是通过与 json 文件中的数据进行比较来检查用户输入是否是正确的选项。用户输入是具有 ip 地址的计算机用户名,因此如果输入匹配用户名并返回 ip 地址,则文本框将以绿色突出显示,以便用户知道其正确性。如果它不是一个有效的用户名,那么它将以红色突出显示。
Index.html
<script src='/Users/.../Project/app.js' type='text/javascript'></script>
<input id="username" type="text" name="username" placeholder="User name" oninput="checkName(this.value);" required>
App.js
function checkName(name){
var contents = fs.readFileSync("jData.json");
var jsonContent = JSON.parse(contents);
var x = jsonContent[name].ip_1gb;
console.log(x);
if ( x == '') {
document.getElementById("username").style.boxShadow = "0 0 3px red";
} else {
document.getElementById("username").style.boxShadow = "0 0 3px green";
}
问题是当我在文本框中输入文本时没有调用 checkName 函数。我指定了 app.js 的整个路径,所以我不知道为什么它没有被调用。 app.js 文件比 html 文件高一个目录,因为我将 html 文件放在“views”文件夹中。
app.js 的路径:/Users/.../Project/app.js
html文件路径:/Users/.../Project/views/index.html
如果有人可以提供帮助,将不胜感激
【问题讨论】:
-
您是否在浏览器的 JavaScript 控制台中看到错误消息?
-
另外,您的 checkName() 函数中存在语法错误。 else 语句中没有右括号
-
亚当是对的。使用合适的编辑器,这样你就不会犯像缺少大括号这样的愚蠢错误
-
您使用的是哪个编辑器?您至少有两个语法错误...
-
抱歉,实际文件中没有语法错误。编辑stackoverflow帖子时一定忘记了一些括号。此外,控制台中没有错误消息。我什至在函数内部放了一个 try catch 以查看是否有错误,但似乎它甚至没有命中函数
标签: javascript html json node.js