我有一个包含几个textareas和selectors的表单,默认情况下禁用的提交按钮。当每个textarea至少包含某些内容时,我需要删除“disabled”属性。
试过这个,但它似乎不起作用:
$("#mySubmit").parent().find("textarea").change(function(){
if ($(this).val() != "") {
$("#mySubmit").removeAttr("disabled");
} else {
$("#mySubmit").attr("disabled");
}
});
我错过了什么?
答案 0 :(得分:5)
试试这个
var $textarea = $("#mySubmit").parent().find("textarea");
var disable = ($("#mySubmit").parent().find("textarea").filter(function(){
return $.trim($(this).val()) == "";
}).length == $textarea.length);
$("#mySubmit").prop("disabled", disable);
.prop()
参考:http://api.jquery.com/prop/ jQuery Ver 1.6 +
如果您使用的是旧版本,请使用attr
/ removeAttr
代替prop
。
if(disable){
$("#mySubmit").removeAttr("disabled");
}
else{
$("#mySubmit").attr("disabled", true);
}
答案 1 :(得分:2)
$("#mySubmit").attr("disabled",'disabled');
答案 2 :(得分:1)
您确定选择器$("#mySubmit").parent().find("textarea")
正在运行吗?如果你是一个像firebug这样的调试器或chrome中的内置调试器,你可以测试它,看看你是否得到了什么。此外,我假设您只想启用提交,如果所有textarea都有。
尝试用
替换它$("textarea").change(function(){
var emptyTextarea = false
$("textarea").each(function(){
if($(this).val()=="")
{
emtpyTextarea = true;
}
});
if(!emptyTextarea)
{
$("#mySubmit").removeAttr("disabled");
}
});
我还建议使用jquery validate插件,因为它可以很好地处理这样的东西: http://bassistance.de/jquery-plugins/jquery-plugin-validation/
答案 3 :(得分:0)
if ($(this).val() != "") {
$("#mySubmit").attr("disabled", "");
} else {
$("#mySubmit").attr("disabled", "disabled");
}
答案 4 :(得分:0)
if ($('textarea:empty').length == 0) {
$('#submitButton').removeAttr('disabled');
}