$(':input[type=text], textarea').change(function(){
if(($(":input[type=text]").val()!="") && $("textarea").val()!=""){
$(":submit").removeAttr("disabled");
$(":submit").removeClass("disabled");
$(":submit").addClass("success");
}
});
当我在表单中的2个textarea元素中输入1个文本时,会触发此函数。
但是我想在所有文本框和文本区域都不为空时触发此函数。
答案 0 :(得分:1)
最好在元素中添加一个类来识别它们。此外,它会使代码更具语义性:
<input type="text" name="Texbox1" class="elementGroup" />
<textarea name="Textarea1" class="elementGroup"></textarea>
<textarea name="Textarea2" class="elementGroup"></textarea>
然后在您的代码中,您可以附加您的活动,并检查所有三个元素是否都设置了值:
$('.elementGroup').change(function() {
var valid = true;
$('.elementGroup').each(function() {
if ($(this).val() == "")
valid = false;
});
if (valid)
$(":submit").removeAttr("disabled").toggleClass("disabled success");
});
答案 1 :(得分:-1)
您需要遍历inputs
和textareas
以确保每个都不为空
$('input[type=text], textarea').change(function(){
x=0;
$('input[type=text], textarea').each(function(){
if($(this).val()==''){x=1;}
});
if(x==0){
$(":submit").removeAttr("disabled");
$(":submit").removeClass("disabled");
$(":submit").addClass("success");
}
});
感谢-1错过了==(我猜是因为它完全接受了接受的答案。)