[英]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.