未定义不是函数javascript错误

时间:2014-05-19 13:13:58

标签: javascript html

我在javascript上非常糟糕,我的代码由于某种原因无法运行。我收到错误

Uncaught TypeError: undefined is not a function js.js:2
cleaning js.js:2
onblur (index):11

js.js

function cleaning() {
    var str = document.getElementByName("fitas").innerHTML;
    str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
    document.getElementByName("fitas").innerHTML = str;
}

HTML

<SCRIPT LANGUAGE="JavaScript" SRC="js.js"></SCRIPT>
<center>        
<form method="post" action="check.php">
<h1>Enter your fit:</h1><br />

<textarea style="width: 500px; height: 400px;" name="fitas" class="text" placeholder="Input your fitting here" onblur="cleaning()"></textarea>
<br>
<input type="submit" name="check" class="btn btn-primary">
</form>
</center>

4 个答案:

答案 0 :(得分:1)

getElementsByName注意 s document.getElementByName未定义。

那会得到一个nodeList,所以

function cleaning() {
    var elem = document.getElementsByName("fitas")[0];

    elem.value = elem.value.replace(/^.+?(<url=[^>]+>).+$/, '$1');
}

此外,你在90年代输入脚本标签的方式是popupar,这些天它全部小写,你不需要语言属性,而在HTML5中你不需要&# 39; t确实需要一个类型属性。

答案 1 :(得分:0)

function cleaning() {
    var str = document.getElementByName("fitas").innerHTML;
    str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
    document.getElementByName("fitas").innerHTML = str;
}

应该

function cleaning() {
    var str = document.getElementsByName("fitas").innerHTML;
    str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
    document.getElementByName("fitas").innerHTML = str;
}

不是getElementByName而是getElement [S] ByName

注意S

答案 2 :(得分:0)

尝试:

<script type="text/javascript" src="js.js"></script>

而不是:

<SCRIPT LANGUAGE="JavaScript" SRC="js.js"></SCRIPT>

答案 3 :(得分:0)

它是getElementsByName而不是getElementByName

此外,它返回一个数组,所以试试这个:

function cleaning() {
    var str = document.getElementsByName("fitas")[0].innerHTML;
    str = str.replace(/^.+?(<url=[^>]+>).+$/, '$1');
    document.getElementsByName("fitas")[0].innerHTML = str;
}

编辑:我在最后一行犯了一个错误 - 现在已经修好了。