gpt4 book ai didi

javascript - 用 addEventListener() 替换 onClick()

转载 作者:行者123 更新时间:2023-11-28 17:47:19 25 4
gpt4 key购买 nike

用addEventListener()转换oclick(),我尝试了多次,但没有成功。任何人都可以帮忙吗?我在书中读到,onlick() 不是 w3 标准,任何帮助将不胜感激

在 onclick() 完美工作之前:

html代码

<!DOCTYPE html>
<html>
<head>

<title>Splitting number</title>

<script type="text/javascript" src="script.js">
</script>
</head>
<body>
<form id="myForm" action="" name="myForm">
<table border="1">
<tr>
<td>Enter a phone number<br> [in the form (555) 555-5555]</td>
<td><input name="input" type="text" size="40"></td>
</tr>
<tr>
<td><input type="button" value="Split" onclick="parseNumber()"></td>
</tr>
<tr>
<td>Area code:</td>
<td><input name="areaCode" type="text" size="5"></td>
</tr>
<tr>
<td>Number:</td>
<td><input name="number" type="text" size="8"></td>
</tr>
</table>
</form>
</body>
</html>

javascript代码:

函数parseNumber() {

var myForm = document.getElementById( "myForm" );

myForm.areaCode.value = "";

myForm.number.value = "";

var completeNumber = myForm.input.value.replace(/\s/g, '');

var areaCode = completeNumber.substr(1,3);

var tokens2 = completeNumber.substr(5).split( "-" );

myForm.areaCode.value = areaCode;

myForm.number.value = tokens2[0] + "-" + tokens2[1];

}

之后,不工作:

html代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Splitting number</title>

<script type="text/javascript" src="script.js"></script>
</head>
<body>
Enter a phone number: in the form (555) 555-5555]
<input name="input" type="text" size="40" id="number" ><br>
<input type="button" value="Split" id="myBtn"><br><br>

Area code: <input name="areaCode" type="text" size="5" id="areaCode"><br>

Number: <input name="number" type="text" size="8" id="anotherNumber">
</body>
</html>

javascript代码

var completeNumber = document.getElementById("number");
x = document.getElementById( "myBtn" );
function parseNumber() {


x.addEventListener("click", parseNumber);
completeNumber.replace(/\s/g, '');
var areaCode = completeNumber.substr(1,3);

var tokens2 = completeNumber.substr(5).split( "-" );

document.getElementById("areaCode").innerHTML = areaCode.toString();

document.getElementById("anotherNumber").innerHTML = tokens2[0].toString() + "-" + tokens2[1].toString();

}

最佳答案

您需要在函数外部添加事件监听器

监听器正在监听(名称中的线索)该元素上的鼠标'click'事件。当事件发生时,即您单击该元素时,它会调用为其分配的函数,在您的情况下:parseNumber

因此,由于您在函数内添加事件监听器,因此它永远不会被添加(因为函数永远不会被调用)。

如果你移动这些行,它应该一切正常:

var x = document.getElementById( "myBtn" );
x.addEventListener("click", parseNumber);

在函数之外。 :)

关于javascript - 用 addEventListener() 替换 onClick(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com