Onchange不起作用,但javascript脚本没问题

时间:2014-09-27 08:15:39

标签: javascript html onchange

这是我的HTML:

<html>
<head>
<script>
function ppid() {
    var ppidtxt = document.getElementById('ppid').value;
    var newppidtxt = ppidtxt.toUpperCase();
    var ppide = document.getElementById('ppid');
    ppide.value = newppidtxt;
}
</script>
</head>
<body>
<form>
  <center><input type="text" id="ppid" class="form-control" name="ppid" placeholder="Personal Project ID" onchange="ppid();" /></center>
</form>
</body>
</html>

我已经尝试过这是JSFiddle,在我的本地PC上,几乎无处不在,但出于某种原因,每当我在表单的文本框中输入id为“ppid”的东西时,它就不会大写它。我做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试使用onkeyup,例如

<input type="text" onkeyup="this.value=this.value.toUpperCase()" />

答案 1 :(得分:0)

我不知道为什么会这样,但是当调用onchange时,&#39; ppid&#39;包含HTMLInputElement(可能是因为它的id)。

如果您将该功能重命名为独特的功能(例如&#39; myFunc&#39;),则可以正常使用。

@MelanciaUK通过以下链接提供了答案:Why JS function name conflicts with element ID?