Javascript 从文本框中获取值并使用带按钮的函数

Javascript 从文本框中获取值并使用带按钮的函数,javascript,html,Javascript,Html,我有一个文本框中的字符串,然后用一个按钮,我想显示文本框中最长的字符串,并在另一个标签或文本框中显示结果最长的单词 为此,我尝试了以下代码: <html> <head> <title>Testing</title> <script type="text/javascript"> function LongestWord() { var text = document.getElem

我有一个文本框中的字符串,然后用一个按钮,我想显示文本框中最长的字符串,并在另一个标签或文本框中显示结果最长的单词

为此,我尝试了以下代码:

    <html>
<head>
    <title>Testing</title>
    <script type="text/javascript">


    function LongestWord() { 

        var text = document.getElementsById("txt1").value;
        var str = text.split(" ");
        var longest = 0;
        var word = null;

    for (var i = 0; i < str.length; i++) {
        if (longest < str[i].length) {
            longest = str[i].length;
            word = str[i];
        }
    }
    document.getElementById("txt2").value = word;
};

    </script>
</head>
<body>

<form>
  Type your string:<br>
  <input type="text" name="textBox1" id="txt1" /><br><p>

  <input type="button" id="btn1" value="Find longest word in your string" onclick="LongestWord();" /><p>

  Longest word is;<br>  
  <input type="text" name="textBox2" id="txt2"><br>
</form>
</body>
</html>
当我点击按钮时,即使我在第一个文本框中输入了一个字符串,代码也不起作用。你能告诉我怎么办吗

此外,我还会像从.js文件中获取函数一样对代码进行求值。

尝试以下操作:

var firstButton = document.getElementById("btn1");

  your function

firstButton.addEventListener('click', function(){
  your_function_name()
})
附言。 在这一行

document.getElementById("txt2").innerHTML = word

将.innerHTML更改为.value

将代码放在正文结尾附近。在代码段中做了一些更正,并添加了注释

函数LongestWordstring{ //使用getElementsByName时使用索引。 //修剪以删除空白 var text=document.getElementsByNametextBox1[0].value.trim; //未定义sen,请替换为文本 var str=text.split; //按每个字符串的长度对数组进行排序 var grtString=str.sortfunctiona,b{ 返回a.length-b.length } //索引0将显示第一个元素 //如果两个字符串的长度相同,那么它将给出第一个字符串 document.getElementByIdtxt2.value=grtString[0]; }; 键入您的字符串: 最长的单词是;
代码中有很多错误,但首要问题是getElementsByName返回节点列表,而不是元素

我试着只更新你的而不重写它。使用更好的变量名会有很大帮助

document.getElementByIdbtn1.onclick=LongestWord; 函数最长字{ var text=document.getElementByIdtxt1.value; var str=text.split; var=0; var-word=null; 对于变量i=0;i 函数最长字{ var text=document.getElementByIdtxt1.value; var str=text.split; var=0; var-word=null; 对于变量i=0;i这里的clickevent是什么?我强烈建议阅读,尤其是拼写、语法和格式部分。我已经更正了这篇文章,并修复了一些常见错误,但在以后的文章中,阅读这篇文章将大大有助于为将来的访问者制作高质量的文章。您的代码还有一个额外的错误};不应该在那里。在询问之前检查它:语句var str=sen.split;应该是var str=text.split,IMHO@FrankerZ,ty表示建议。我阅读了文章,我将尝试按照您的建议修改我的风格。顺便说一句,此代码与此页面中的代码片段配合得非常好。但是它在我的计算机上不起作用。我应该检查什么?我检查了ecked代码,它与@JasonB的代码完全相同。您可以更新问题以显示您的代码并让更多人关注它。它可能与此代码段找到的最短代码段不完全相同。@Erikin只需将return a.length-b.length与return b.length-a.length交换即可