改变形式输入到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:")
但提示不起作用。
为什么我没有被提示输入单词?
答
您需要在脚本结尾处拨打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>
+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");
}
删除表格,并有'回文();'你的函数的收盘'}'后调用的函数。目前你依靠用户单击按钮来运行该功能。 – Andy
此外,[这里是一个稍微简单的方法来找出是否一个字符串是回文](http://stackoverflow.com/a/14813569/1377002),不涉及迭代。 – Andy
所以..实际上你的问题与回文无关,实际上全是关于如何提示用户输入一些文本?你为什么不在问题标题中这么说? –