Javascript 在动态添加的文本框中输入文本时启用按钮
我有一个表单,它在文本框中输入信息。首先我显示一个文本框,然后单击一个按钮(添加),另一个文本框显示出来。如果任何文本框为空,我希望禁用“添加”按钮。我的代码如下:Javascript 在动态添加的文本框中输入文本时启用按钮,javascript,jquery,html,Javascript,Jquery,Html,我有一个表单,它在文本框中输入信息。首先我显示一个文本框,然后单击一个按钮(添加),另一个文本框显示出来。如果任何文本框为空,我希望禁用“添加”按钮。我的代码如下: <script> function doCheck(){ var allFilled = true; var inputs = document.getElementsByName("a[]"); for(var i=0; i<
<script>
function doCheck(){
var allFilled = true;
var inputs = document.getElementsByName("a[]");
for(var i=0; i<inputs.length; i++){
if(inputs[i].type == "text" && inputs[i].value == ''){
allFilled = false;
break;
}
}
document.getElementById("add_a").disabled = !allFilled;
}
window.onload = function(){
var inputs = document.getElementsByName("a[]");
for(var i=0; i<inputs.length; i++){
if(inputs[i].type == "text"){
inputs[i].onkeyup = doCheck;
inputs[i].onblur = doCheck;
}
}
};
$(document).ready(function(){
$("#add_a").click(function(){
$("#a").append("<li><input class='textbox' name='a[]' type='text' size='120'></li>");
});
});
</script>
函数doCheck(){
var-allFilled=true;
var inputs=document.getElementsByName(“a[]);
对于(var i=0;i用于将函数绑定到页面加载中存在的元素(如document
或更接近该元素的包含div):
用于将函数绑定到页面加载中存在的元素(如文档
或更靠近该元素的包含div):
注意:不要在代码中混合使用jQuery和javascript
你需要做两件事才能让这一切顺利进行
首先,
$("#add_a").click(function () {
$("#a").append("<li><input class='textbox' name='a[]' type='text' size='120'></li>");
$("#add_a").prop('disabled', true); //disable immediately after adding
});
注意:不要在代码中混合使用jQuery和javascript
你需要做两件事才能让这一切顺利进行
首先,
$("#add_a").click(function () {
$("#a").append("<li><input class='textbox' name='a[]' type='text' size='120'></li>");
$("#add_a").prop('disabled', true); //disable immediately after adding
});
这里有一个肮脏的版本供您尝试。如果它对您有效,我会回来轻推它。正如其他人所说,当您使用jQuery时,请充分利用它
$("#add_a").click(function(){
$("#a").append("<li><input class='textbox' name='a[]' type='text' size='40'></li>");
$(this).prop("disabled", true);
});
$(document).on("keyup", "#a input", function() {
var emptyInputs = $("#a").find("input").filter(function() {
return $.trim( $(this).val() ) == ""
}).length;
$("#add_a").prop("disabled", emptyInputs);
});
$(“#添加a”)。单击(函数(){
$(“#a”)。追加(“”);
$(this.prop(“disabled”,true);
});
$(document).on(“keyup”,“a input”,function(){
var emptyInputs=$(“#a”).find(“input”).filter(函数(){
返回$.trim($(this.val())==“”
}).长度;
$(“#添加a”).prop(“已禁用”,清空输入);
});
Demo@这里有一个肮脏的版本供您尝试。如果它对您有效,我会回来推它。正如其他人所说,当您使用jQuery时,请充分利用它
$("#add_a").click(function(){
$("#a").append("<li><input class='textbox' name='a[]' type='text' size='40'></li>");
$(this).prop("disabled", true);
});
$(document).on("keyup", "#a input", function() {
var emptyInputs = $("#a").find("input").filter(function() {
return $.trim( $(this).val() ) == ""
}).length;
$("#add_a").prop("disabled", emptyInputs);
});
$(“#添加a”)。单击(函数(){
$(“#a”)。追加(“”);
$(this.prop(“disabled”,true);
});
$(document).on(“keyup”,“a input”,function(){
var emptyInputs=$(“#a”).find(“input”).filter(函数(){
返回$.trim($(this.val())==“”
}).长度;
$(“#添加a”).prop(“已禁用”,清空输入);
});
Demo@感谢您让我知道我的dup帖子..我的网页在提交时卡住了,所以我提交了两次感谢您让我知道我的dup帖子..我的网页在提交时卡住了,所以我提交了两次,因为您将事件绑定到$(文档)。就绪()。此代码仅在网站完全加载时执行。您需要将click()事件添加到动态添加的文本框中。它仅适用于第一个文本框,因为您将事件绑定到$(document).ready()。此代码仅在网站完全加载时执行。您需要将click()事件添加到动态添加的文本框中。
$("#add_a").click(function(){
$("#a").append("<li><input class='textbox' name='a[]' type='text' size='40'></li>");
$(this).prop("disabled", true);
});
$(document).on("keyup", "#a input", function() {
var emptyInputs = $("#a").find("input").filter(function() {
return $.trim( $(this).val() ) == ""
}).length;
$("#add_a").prop("disabled", emptyInputs);
});