删除textarea中的disabled属性有值

时间:2012-02-01 21:48:36

标签: jquery

我有一个包含几个textareas和selectors的表单,默认情况下禁用的提交按钮。当每个textarea至少包含某些内容时,我需要删除“disabled”属性。

试过这个,但它似乎不起作用:

$("#mySubmit").parent().find("textarea").change(function(){
    if ($(this).val() != "") {
        $("#mySubmit").removeAttr("disabled");
    } else {
        $("#mySubmit").attr("disabled");
    }   
}); 

我错过了什么?

5 个答案:

答案 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');
}