我试图使字段可见/不可见取决于布尔值。 在我在页面上执行任何操作之前,代码正在“catch”部分之前编译。 我怎样才能确保它只在catch块运行的情况下运行?
default.ejs
<textarea id="myTextArea" cols=50 rows=10></textarea>
<button onclick="prettyPrint()">Pretty Print</button>
<script>
function prettyPrint() {
try {
var ugly = document.getElementById('myTextArea').value;
var leftBracket = '"{';
var rightBracket = '}"';
ugly = ugly.replace(new RegExp(leftBracket, "g"), "{")
ugly = ugly.replace(new RegExp(rightBracket, "g"), "}")
var obj = JSON.parse(ugly);
var pretty = JSON.stringify(obj, undefined, 4);
document.getElementById('myTextArea').value = pretty;
console.log(pretty);
document.getElementById("myTextArea").style.borderColor = "blue";
<% jsonValid = true %>
} catch (err) {
console.log(err);
document.getElementById("myTextArea").style.borderColor = "red";
<% jsonValid = false %>
}
}
</script>
<% if (jsonValid) { %>
<h2>"json Is Valid"</h2>
<% } %>
index.js
exports.index = function(req, res) {
res.render('default', {
title: 'Home',
jsonValid: true
});
}