<script>
function disableBtn() {
document.getElementsByTagName("INPUT")[1].removeAttribute("disabled");
}
</script>
<form>
<p>
<label for="uname">* User Name :</label>
<br>
<input type="text" name="txtuname" id="uname" onclick="disableBtn()" value="">
</p>
<div style="text-align:center">
<p>
<input name="username" type="submit" id="submit" value="Change Username" disabled="disable">
</p>
</div>
<p>
<label for="fullname">* Full Name :</label>
<br>
<input type="text" name="txtfullname" id="fullname" value="">
</p>
<div style="text-align:center">
<p>
<input name="fullname" type="submit" id="submit" value="Change Fullname" disabled="disable">
</p>
</div>
<p>
<label for="address">* Address :</label>
<br>
<input type="text" name="txtaddress" id="address" value="">
</p>
<div style="text-align:center">
<p>
<input name="address" type="submit" id="submit" value="Change Address" disabled="disable">
</p>
</div>
</form>
我想在执行函数onclick
的每个输入标记中添加disableBtn
事件,但我希望此代码能够处理我单击的任何输入。我不想要给出这样的数字:
document.getElementsByTagName("INPUT")[1].removeAttribute("disabled");
表示每个输入元素。
我想我应该使用它,但我不知道该把它放在哪里。
答案 0 :(得分:1)
您想循环每个输入元素并添加事件吗? document.getElementsByTagName("input")
返回一个数组,因此您可以使用循环来覆盖它。
JavaScript的:
// This is a function which disables an input element
// Notice I used "this" instead of document.getElementsByTagName("input")[some number]
// "this" refers to the input element that was clicked
function disableBtn() {
this.parentNode.nextElementSibling.querySelector('input[type="button"]').disabled = false;
}
// Get every single input element
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; ++i) {
// Loop through the input elements, and add a "click" event
var input = inputs[i];
input.addEventListener("click", disableBtn, false);
}
答案 1 :(得分:0)
<强> 代码: 强>
将您的功能更改为:
function disableBtn(el) {
el.parentNode.nextElementSibling.querySelector("input").disabled = false;
}
这个处理程序:
onclick="disableBtn(this)"
DEMO: http://jsfiddle.net/dcg8gzqt/
<强> 说明: 强>
现在处理程序将当前单击的元素传递给disableBtn
函数。
那个功能呢......
.parentNode
.nextElementSibling
,这是下一个div
,div
在.querySelector()
内搜索它找到的第一个input
。.disabled
的{{1}}属性设置为input