繁体   English   中英

Javascript .innerHTML 功能输出只闪烁

[英]Javascript .innerHTML fuction output only flashes

我写了一个 JS 代码来查找字符串是否为回文。 但输出只保持不到一秒钟然后消失。 我知道以前有人问过这种类型的问题,我尝试了说添加“返回假”的解决方案,但它对我不起作用。

 function palindrome(str) { var str1 = str.split(""); var str2 = str1.reverse(); var str3 = str2.join(""); return str3; } function checkpalin() { var x = document.getElementById("pform").value; var st = palindrome(x); var flag = st.localeCompare(x); if (flag === 0) document.getElementById('demo').innerHTML = "Given number is a palindrome"; else document.getElementById('demo').innerHTML = "Not palindrome"; return false; }
 <form> Please enter a string:<br> <input type="text" name="str" id="pform" onchange="return checkpalin()"><br> </form> <p id="demo"></p>

这是因为你有它的形式。 尝试这个

 function palindrome(str) { var str1 = str.split(""); var str2 = str1.reverse(); var str3 = str2.join(""); return str3; } function checkpalin() { var x = document.getElementById("pform").value; var st = palindrome(x); var flag = st.localeCompare(x); if (flag === 0) document.getElementById('demo').innerHTML = "Given number is a palindrome"; else document.getElementById('demo').innerHTML = "Not palindrome"; return false; }
 <!DOCTYPE html> <html> <body> Please enter a string:<br> <input type="text" name="str" id="pform" onchange="return checkpalin()"><br> <p id="demo"></p> </body> </html>

您还可以使用oninput而不是onchange使其在文本框中键入时更新。

 function palindrome(str) { var str1 = str.split(""); var str2 = str1.reverse(); var str3 = str2.join(""); return str3; } function checkpalin() { var x = document.getElementById("pform").value; var st = palindrome(x); var flag = st.localeCompare(x); if (flag === 0) document.getElementById('demo').innerHTML = "Given number is a palindrome"; else document.getElementById('demo').innerHTML = "Not palindrome"; return false; }
 <!DOCTYPE html> <html> <body> Please enter a string:<br> <input type="text" name="str" id="pform" oninput="return checkpalin()"><br> <p id="demo"></p> </body> </html>

在表单中的单个字段中按 Enter 时的默认事件是提交表单。

在您的代码中,返回仅对提交事件感兴趣。

只需在提交时防止默认或删除表单标签

 function palindrome(str) { var str1 = str.split(""); var str2 = str1.reverse(); var str3 = str2.join(""); return str3; } document.getElementById("myForm").onsubmit = function(e) { e.preventDefault(); var x = document.getElementById("pform").value; var st = palindrome(x); var flag = st.localeCompare(x); document.getElementById('demo').innerHTML = flag ? "Not palindrome" : "Given string is a palindrome"; }
 <form id="myForm"> Please enter a string and hit enter:<br> <input type="text" name="str" id="pform"><br> </form> <p id="demo"></p>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM