我对JavaScript很新。我的目标是在提交一个按钮后将页面上的所有提交按钮变灰30秒。我有多个文本区域,因此有多个提交按钮。第一个代码工作正常,但我必须写23次才能得到我想要的结果。他们是一种编写代码的方法,但包含所有id或任何其他代码以获得相同的结果?
// This works but I would have to write it 23 times, inserting the new id each rewrite
<script type="text/javascript">
setTimeout (function(){
document.getElementById('news').disabled = null;
},30000);
</script>
//I have left out textarea for this example
<input id="news" type="submit" name="submit" value="Submit" disabled="disabled">
// This will not work, adding the extra id
<script type="text/javascript">
setTimeout (function(){
document.getElementById('news', 'sports').disabled = null;
},30000);
</script>
//I have left out textarea for this example
<input id="news" type="submit" name="submit" value="Submit" disabled="disabled">
//I have left out textarea for this example
<input id="sports" type="submit" name="submit" value="Submit" disabled="disabled">
答案 0 :(得分:1)
由于你有jquery作为标记,你可以这样做:
setTimeout (function(){
$("input").each(function(){
$(this).prop('disabled', true);
})
},30000);
您还可以为所有输入添加一个类,然后使用$(".class").each(function(){
代替
答案 1 :(得分:0)
使用jquery,禁用你要执行的按钮
$('#news').prop('disabled', 'disabled');
setTimeout($("$('#news').prop('disabled', '');" 30000);
$('#sports').prop('disabled', 'disabled');
setTimeout($("$('#sports').prop('disabled', '');" 30000);
这可以修改为使用
一般禁用/启用页面上的所有按钮$("button, input[type='button']").prop('disabled', 'disabled');
setTimeout(function(){$("button, input[type='button']").prop('disabled', '');}, 30000);
答案 2 :(得分:0)
在按钮中添加课程:
<input class="submit" id="news" type="submit" name="submit" value="Submit" disabled="disabled">
<input class="submit" id="sports" type="submit" name="submit" value="Submit" disabled="disabled">
然后你可以这样做:
setTimeout(function () {
var btns = document.getElementsByClassName('submit');
for (var i = 0; i < btns.length; i++) {
btns[i].disabled = null;
}
}, 30000);