document.getElementById.innerHTML 无法正常工作
document.getElementById.innerHTML is not working correctly?
我过去一直在使用它,没有任何问题。这次我似乎想不通出了什么问题;也许我只需要第二双眼睛。
这是我的HTML代码:
<form id="myForm">
<table>
<tr>
<th>Product</th>
<th>Price</th>
</tr>
<tr>
<td>2014 HK Army Hardline Paintball Jersey</td>
<td>$89.95</td>
</tr>
<tr>
<td>Planet Eclipse 2013 Distortion Gloves</td>
<td>$34.95</td>
</tr>
<tr>
<td>Eclipse Geo 3.5 Paintball Marker</td>
<td>$1,600.00</td>
</tr>
</table>
<p>How many Paintball Jerseys would you like to order?</p>
<input id="jersey" type="number" value="0">
<p>How many Paintball Gloves would you like to order?</p>
<input id="gloves" type="number" value="0">
<p>How many Paintball Markers would you like to order?</p>
<input id="marker" type="number" value="0"><br>
<input type="button" onclick="submit()" value="Submit Form">
<input type="button" onclick="reset()" value="Reset Form"><br>
<p id="result"> </p>
</form>
还有我的 JavaScript 代码:
function submit() {
document.getElementById("result").innerText = "hi";
}
显然,我使用"嗨"作为测试。当我打开网站时,它没有显示我的光标在 p id="result" 中的位置。任何建议不胜感激。
编辑:我知道它说document.getElementById("result").innerText = "hi";
,但我也用.innerHTML
试过,但仍然一无所获。
您看到此问题是因为您使用的是内联事件处理程序。内联事件处理程序的范围有点棘手。
长话短说:你根本没有调用你的submit
函数。
<form>
DOM 元素的方法位于内联事件处理程序的范围内。因此,在事件处理程序中,submit
不是引用您的用户定义函数,而是引用并调用 myForm.submit
,从而提交表单。
您可以通过与document.getElementById('myForm').submit
进行比较来轻松测试这一点(检查控制台)。
function submit() {
// doesn't matter what's here
}
<form id="myForm">
<input type="button" onclick="console.log('DOM element submit', submit === document.getElementById('myForm').submit);" value="Click me!">
</form>
可以通过重命名函数或不使用内联事件处理程序来解决此问题。
旁注:Firefox 不支持innerText
。
试试这个
将您的函数名称更改为其他,然后提交例如 submit2():
<form id="myForm">
<table>
<tr>
<th>Product</th>
<th>Price</th>
</tr>
<tr>
<td>2014 HK Army Hardline Paintball Jersey</td>
<td>$89.95</td>
</tr>
<tr>
<td>Planet Eclipse 2013 Distortion Gloves</td>
<td>$34.95</td>
</tr>
<tr>
<td>Eclipse Geo 3.5 Paintball Marker</td>
<td>$1,600.00</td>
</tr>
</table>
<p>How many Paintball Jerseys would you like to order?</p>
<input id="jersey" type="number" value="0">
<p>How many Paintball Gloves would you like to order?</p>
<input id="gloves" type="number" value="0">
<p>How many Paintball Markers would you like to order?</p>
<input id="marker" type="number" value="0"><br>
<input type="button" onclick="submit2()" value="Submit Form">
<input type="button" onclick="reset()" value="Reset Form"><br>
<p id="result"> </p>
</form>
<script type="text/javascript">
function submit2(){
document.getElementById("result").innerHTML = "hi";
}
</script>
我希望这对你有所帮助。
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)