改变形式输入到JavaScript的提示

问题描述:

我有一个函数来检查,如果在文本输入输入的词是回文:改变形式输入到JavaScript的提示

function Palindrome() { 
 
    var revStr = ""; 
 
    var str = document.getElementById("str").value; 
 
    var i = str.length; 
 
    for (var j = i; j >= 0; j--) { 
 
    revStr = revStr + str.charAt(j); 
 
    } 
 
    if (str == revStr) { 
 
    alert(str + " is a palindrome"); 
 
    } else { 
 
    alert(str + " is not a palindrome"); 
 
    } 
 
}
<form> 
 
    Enter a String or Number: 
 
    <input type="text" id="str" name="string" /> 
 
    <br /> 
 
    <input type="submit" value="Check" onclick="Palindrome();" /> 
 
</form>

我想用户被提示字,而不是输入文字进行文本输入,所以我改变

var str = document.getElementById("str").value; 

var str = prompt("Enter a string or number:") 

但提示不起作用。
为什么我没有被提示输入单词?

+3

删除表格,并有'回文();'你的函数的收盘'}'后调用的函数。目前你依靠用户单击按钮来运行该功能。 – Andy

+0

此外,[这里是一个稍微简单的方法来找出是否一个字符串是回文](http://*.com/a/14813569/1377002),不涉及迭代。 – Andy

+0

所以..实际上你的问题与回文无关,实际上全是关于如何提示用户输入一些文本?你为什么不在问题标题中这么说? –

您需要在脚本结尾处拨打Palindrome()。当前标准的,只有Palindrome火灾时,你点击submit

<script type="text/javascript"> 
    function Palindrome() { 
     var revStr = ""; 
     var str = prompt("Enter a string or number:") 
     var i = str.length; 
     for(var j=i; j>=0; j--) { 
      revStr = revStr+str.charAt(j); 
     } 
     if(str == revStr) { 
      alert(str+" is a palindrome"); 
     } else { 
      alert(str+" is not a palindrome"); 
     } 
    } 
    Palindrome() 
</script> 

JSFiddle

+0

我知道我错过了什么,谢谢很多人! –

+0

如果这个问题帮助你解决了你的问题,你应该接受这个答案。详细了解[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 –

,如果您使用的是提示你并不需要的形式,也有一个快速的递归的方式找到一个回文(尽管不如Andy提到的效率)。我将它添加到您的(工作版本),仅供参考。 试试这个..

function isPalindrome(x) { 
     return x.length <= 1 ? true : (x.charAt(0) != x.charAt(x.length - 1) ? false : isPalindrome(x.slice(1, -1))) 
    } 

    function Palindrome(str) { 

     var revStr = ""; 
     // var str = document.getElementById("str").value; 
     var i = str.length; 
     for(var j=i; j>=0; j--) { 
      revStr = revStr+str.charAt(j); 
     } 

     if(str == revStr) { 
      alert(str+" is a palindrome"); 
     } else { 
      alert(str+" is not a palindrome"); 
     } 
    } 
    var str = prompt("Enter a string or number:") 
    Palindrome(str) 
    if (isPalindrome(str)){ 
     alert('isP: ' +str+" is a palindrome"); 

    } else{ 
     alert('isP: ' +str+" is not a palindrome"); 

    }