javascript 函数未被调用/无法从 html 表单工作

标签 javascript html forms function

这是我的整个html页面

<html>
<head>
<title> text conversion</title>
<script type="text/javascript">
function testResults(form)
{

var str = form.stringn.value;

str.split(" ");
document.write("testing1");
var length = str.length;
var newn = "";

for(var i = 0; i<length; i++)
{
    if(str[i].charAt(str[i].length - 1) != ".")
    {
        str[i] = str[i] + ".";
    }
    str[i] = str[i] + " ";
    str[i].charAt(0) = str[i].charAt(0).toUpperCase();
    newn = newn + str[i];

}
document.write(newn);
document.write("testing");
}


</script>
</head>

<body>
<form name="stringform" action="" method="get">
Text: <input type="text" name="stringn"><br>
<input type="button" name="Convert" Value="convert" onClick="testResults(this.form)">
</form>
</body>


</html>

html 显示正确,但按钮没有产生任何 Action 。我什至在 javascript 的循环下面尝试了 document.write("testing"),但没有任何效果,这让我觉得这个函数根本没有被调用。该函数的思想是将输入字符串格式化为每个单词的首字母大写,并在每个单词后加上一个句点。

这是我第一次尝试使用 javascript,所以我可能做错了一些应该很明显的错误?

最终解决方案:

<html>
<head>
<title> text conversion</title>
<script type="text/javascript">
function testResults(form)
{

var str = form.stringn.value;

var strn = str.split(" ");

var length = strn.length;
var newn = "";

for(var i = 0; i<length; i++)
{

    if(strn[i].charAt(strn[i].length - 1) != ".")
    {
        strn[i] = strn[i] + ".";
    }
    strn[i] = strn[i].charAt(0).toUpperCase() + strn[i].slice(1);

    strn[i] = strn[i] + " ";
    newn = newn + strn[i];


}
document.write(newn);

}


</script>
</head>

<body>
<form name="stringform" action="" method="get">
Text: <input type="text" name="stringn"><br>
<input type="button" name="Convert" Value="convert" onClick="testResults(this.form)">
</form>
</body>


</html>

最佳答案

这应该有效。另外,回应之前关于使用 new 作为变量的评论。

<html>
<head>
<title> text conversion</title>
<script language="JavaScript">

function testResults(form)
{
    var str = form.stringn.value;
    var newString = "";
    var strList = str.split(" ");
    for(var i = 0; i < strList.length; i++){
        newWord = strList[i].charAt(0).toUpperCase() + strList[i].slice(1) + ".";       
        newString += newWord + " ";
    }
    document.write(newString);
}

</script>
</head>

<body>
<form name="stringform" action="" method="get">
Text: <input type="text" name="stringn"><br>
<input type="button" name="Convert" Value="convert" onClick="testResults(this.form)">
</form>
</body>


</html>

关于javascript 函数未被调用/无法从 html 表单工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18218096/

相关文章:

javascript - 如何使用 javascript 而不是 HTML 5 设置表单按钮的范围

html - POST 未选中的 HTML 复选框

javascript - jQuery Chained - 不适用于 iOS

javascript - 使用 Jasmine 模拟 chrome.storage.local 函数

html - 什么是 data-target 和 data-slide-to 属性?

html - Firefox 上的 Angular 不会调整 div 容器的大小

javascript - 提交时下拉 ="window.open",始终打开新文件而不覆盖它

javascript - 使用 div 重新创建行为 "background-attachment: fixed"

javascript - 如何正确调用fs.writeFile

javascript - HTML/CSS -- 如何添加选中状态