我正在尝试通过 Visual Studio 2013 中的 .html 文件学习 JavaScript。
我知道有更简单的方法可以在 JavaScript 中反转字符串,但我的主要目标是理解 html 和 JavaScript 之间的交互以提供这样的解决方案。
此外,IDE 必须是 Visual Studio,因为最终我想使用 .aspx 文件编写相同的逻辑。
因此,对于我最初的学习尝试,我尝试实现以下逻辑:
- 从表单的输入标签中获取一个字符串,
- 提交表单导致脚本 submit() 运行,
- 脚本反转字符串,然后
- 在现在禁用的同一输入标签中显示反转字符串
我写的代码如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<script type="text/javascript">
function reverseString() {
var s = document.getElementById('reverseString').value;
var reversed;
for (var i = s.length - 1; i >= 0; i--) {
reversed += s[i];
}
document.getElementById('reverseString').disabled = true;
document.getElementById('reverseString').value = reversed;
}
function submit(form) {
reverseString();
}
</script>
<title>Play with Code</title>
</head>
<body>
<form name="myform" onsubmit="submit();">
Reverse String: <input type="text" id="reverseString"/><br/>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
它不起作用,我真的不知道如何解决它。
我尝试按照这些链接提供的说明进行调试,但没有成功:
How to debug (only) JavaScript in Visual Studio?
请帮助我修复这段代码,如果可能的话,请建议或指导我如何调试这样一段代码。
谢谢。
最佳答案
这是一个带有注释的工作代码,可以向您解释您做错了什么:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Play with Code</title>
</head>
<body>
<form name="myform" id="form">
Reverse String: <input type="text" id="reverseString"/><br/>
<input type="submit" value="Submit"/>
</form>
<script>
function reverseString() {
var s = document.getElementById('reverseString').value;
// reverse should initialized as a empty String
// to prevent adding char to "undefined" string
var reversed = '';
for (var i = s.length - 1; i >= 0; i--) {
reversed += s[i];
}
document.getElementById('reverseString').disabled = true;
document.getElementById('reverseString').value = reversed;
}
function submit(ev) {
// preventDefault prevent the form to do his automatic
// behavior which submit the form with a new HTTP request
ev.preventDefault();
reverseString();
}
// Attach the event to the form
document.getElementById('form').addEventListener('submit', submit);
</script>
</body>
</html>
关于javascript - 如何在javascript中反转字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625839/