我目前遇到onclick事件的问题我绞尽脑汁而无法找到问题
的index.html
<table id="WIP" class="table" width="80%">
<tr><th colspan="6">Please Enter Your Parts In Progress</th></tr>
<tr>
<th>Station</th>
<th>Current WIP</th>
<th>Enter WIP</th>
<th>Save WIP</th>
</tr><tr>
<div id="10001DIV">
<th>Cutter</th>
<td># Of WIP</td>
<td><input name="10001WIP" type="text"></td>
<td><button type="button" onclick="SaveWIP({div:document.getElementById("10001DIV").value,num:document.getElementById("10001WIP").value})">WIP</button></td>
</div>
</tr>
</table>
<script>
function SaveWIP(e) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("10001DIV").innerHTML = this.responseText;
}
};
xhttp.open("GET", "getuser.php?q="+e.num+"",true);
xhttp.send();
}
</script>
任何帮助将不胜感激
答案 0 :(得分:0)
我建议你只传递id
(和/或name
),然后在你的函数中使用querySelector('...').value
如果您将id
添加到input
,则可以使用getElementById()
旁注,document.getElementById('10001DIV').value
无效,因为该元素不是输入,而是div
function SaveWIP(e) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("10001DIV").innerHTML = this.responseText;
}
};
xhttp.open("GET", "getuser.php?q="+document.querySelector('[name="'+e.num+'"]').value+"",true);
xhttp.send();
}
<table id="WIP" class="table" width="80%">
<tr><th colspan="6">Please Enter Your Parts In Progress</th></tr>
<tr>
<th>Station</th>
<th>Current WIP</th>
<th>Enter WIP</th>
<th>Save WIP</th>
</tr><tr>
<div id="10001DIV">
<th>Cutter</th>
<td># Of WIP</td>
<td><input id="10001WIP" type="text"></td>
<td><button type="button" onclick="SaveWIP({div:'10001DIV',num:'10001WIP'})">WIP</button></td>
</div>
</tr>
</table>
答案 1 :(得分:0)
正如评论中所建议的那样,单击侦听器中的代码未被正确解释,因为双引号内有不带引号的双引号。而不是:
onclick="SaveWIP({div:document.getElementById("10001DIV").value,num:document.getElementById("10001WIP").value})"
在双引号内使用单引号(保存引用内部双精度):
onclick="SaveWIP({div:document.getElementById('10001DIV').value,num:document.getElementById('10001WIP').value})"
你也传递div的值,这可能是未定义的,当你应该传递div时,所以:
onclick="SaveWIP({div:document.getElementById('10001DIV'),num:document.getElementById('10001WIP').value})"
答案 2 :(得分:0)
我认为ID中存在问题:
document.getElementById("10001DIV").value
那是什么?你在尝试获得DIV的价值吗?
如果您需要获取输入值,但没有ID,您可以通过NAME调用它:
document.getElementsByName("10001DIV").value