【问题标题】:Changing form input to JavaScript prompt将表单输入更改为 JavaScript 提示
【发布时间】:2015-07-13 01:01:15
【问题描述】:

我有一个函数来检查在文本输入中输入的单词是否是回文:

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:")

但是提示没有触发。
为什么没有提示我输入单词?

【问题讨论】:

  • 删除表单并在您的函数关闭} 后有Palindrome(); 以调用该函数。目前,您依靠用户单击按钮来运行该功能。
  • 所以..实际上您的问题与回文无关,实际上是关于如何提示用户输入一些文本?那你为什么不在题名里这么说呢?

标签: javascript function onclick prompt


【解决方案1】:

您需要在脚本末尾调用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

【讨论】:

  • 如果这个问题帮助你解决了你的问题,你应该接受这个答案。详细了解accepting answers here
【解决方案2】:

如果您使用提示符,则不需要该表单,还有一种快速递归方法可以找到回文(尽管不如 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");

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 2012-04-20
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2023-01-01
    相关资源
    最近更新 更多