无法读取未定义的属性长度?

时间:2017-02-26 02:18:04

标签: javascript button types onclick

我创建了一个函数,它接受我在html文本框中编写的字符串,并在下一个文本框中打印该字符串的长度(第一个文本框是我的HTML页面上的第5个文本框)

function StringLength(){

var aInput = document.querySelectorAll("[text='text']");
var sResult = aInput[5].length;
aInput[6].value = (sResult);



}

然后我使用onClick方法通过调用函数在第6个文本框上打印字符串的长度

<label><input type="button" value="Trouve" onClick="LongueurChaine()"/></label>

Uncaught TypeError: Cannot read property 'length' of undefined
at LongueurChaine (demo.js:54)
at HTMLInputElement.onclick (gabarit.html:85)
LongueurChaine @ demo.js:54
onclick @ gabarit.html:85

我每次尝试点击按钮都会得到这个...?有没有更简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:0)

如果是第5个文本框,则结果数组中的索引必须为4.

此外,您的选择器是[text =&#39; text&#39;],我猜您的意思是[type =&#39; text&#39;]。

function StringLength(){    
   var aInput = document.querySelectorAll("[type='text']");
   var sResult = aInput[4].length;
   aInput[5].value = (sResult);    
}

答案 1 :(得分:0)

                <div> 
                <fieldset>
                    <label>String : <input type="text" name="Nom"/></label>

                    <label>Length : <input type="text" name="Nom"/></label>

                    <label>'x' : <input type="text" name="Nom"/></label>

                    <label>Position of 'x' : <input type="text" name="Nom"/></label>

                    <label>Integer : <input type="text" name="Nom"/></label>

                    <label>char : <input type="text" name="Nom"/></label>

                    <label>Extraction : <input type="text" name="Nom"/></label>


                </fieldset>

                      <fieldset>

                    <label><input type="reset" value="Efface"/></label> 
                          <br>
                    <label><input type="button" value="Trouve" onClick="StringLength()"/></label> 


                     </fieldset>
                </div