admin管理员组文章数量:1425678
I'm trying to make a function in a webpage when a user press the 'submit' button it goes into an EJS function but I need the DOM function to change elements but the document is not defined in EJS what can I do.
<p id="resMessage"></p>
<div id="generalSettings" class="main-menu-content">
<% if (showData.prefix) { %>
<%
function savePrefix() {
try {
configData({
'prefix': document.getElementById('resMessage') <=== this is not defined
});
%>
<script type="text/javascript">
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'green';
resMessage.innerHTML = "Success!"
</script>
<%
} catch (err) {
if (err) {
%>
<script type="text/javascript">
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'red';
resMessage.innerHTML = `Error: ${err.toString()}`
</script>
<%
console.log(err)
};
};
};
%>
<input type="text" id="prefix" value=<%= showData.prefix %> maxlength="6"><input type="submit" onclick=<%= savePrefix() %>>
<% } %>
</div>
I'm trying to make a function in a webpage when a user press the 'submit' button it goes into an EJS function but I need the DOM function to change elements but the document is not defined in EJS what can I do.
<p id="resMessage"></p>
<div id="generalSettings" class="main-menu-content">
<% if (showData.prefix) { %>
<%
function savePrefix() {
try {
configData({
'prefix': document.getElementById('resMessage') <=== this is not defined
});
%>
<script type="text/javascript">
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'green';
resMessage.innerHTML = "Success!"
</script>
<%
} catch (err) {
if (err) {
%>
<script type="text/javascript">
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'red';
resMessage.innerHTML = `Error: ${err.toString()}`
</script>
<%
console.log(err)
};
};
};
%>
<input type="text" id="prefix" value=<%= showData.prefix %> maxlength="6"><input type="submit" onclick=<%= savePrefix() %>>
<% } %>
</div>
Share
Improve this question
edited Mar 9, 2019 at 6:54
Felix Isaac
asked Mar 9, 2019 at 6:41
Felix IsaacFelix Isaac
3326 silver badges13 bronze badges
2
- I edited it, that works but still, document is undefined and I don't know how I'm supposed to get the prefix from the input without using document – Felix Isaac Commented Mar 9, 2019 at 6:55
-
Jane's answer appears likely, because it's the open
<%
and close%>
tags, which control where the template code starts and ends. – Martin Zeitler Commented Mar 9, 2019 at 20:35
1 Answer
Reset to default 4ejs is a template language, which means it only controls how the page is rendered, and does nothing to change what happens to the page on the client's browser after it has loaded.
Changing your code to this should fix the problem:
<p id="resMessage"></p>
<div id="generalSettings" class="main-menu-content">
<% if (showData.prefix) { %>
<script type="text/javascript">
function savePrefix() {
try {
configData({
'prefix': document.getElementById('resMessage')
});
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'green';
resMessage.innerHTML = "Success!"
} catch (err) {
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'red';
resMessage.innerHTML = `Error: ${err.toString()}`
console.log(err);
}
}
</script>
<input type="text" id="prefix" value="<%= showData.prefix %>" maxlength="6"><input type="submit" onclick="<%= savePrefix() %>">
<% } %>
</div>
本文标签: javascriptHow to use DOM function in EJSStack Overflow
版权声明:本文标题:javascript - How to use DOM function in EJS - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745455545a2659085.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论