2012-12-23 61 views
1

我一直在使用一种表单,我希望提交按钮被禁用,除非选择了textarea和select选项。启用/禁用表单提交按钮不起作用

textarea验证工作正常,问题与选择。 问题是select从自定义drowpdown中取值,它将值放在select中,我认为这是问题,因为脚本不会将它作为select的值。

该脚本的工作原理是: a)首先选择一个选项,然后键入textarea。 b)你输入textarea,选择一个选项,然后在textarea中再次输入。

用于该脚本的启用/禁用按钮是本

$(function() { 
     $("#result, #content-text-ta").bind("keyup change", 
    function() {  
     if ($("#content-text-ta").val() != "" && $("#result").val() != "") 
      $(this).closest("form").find(":submit").removeAttr("disabled").removeClass('disabled').addClass('enabled'); 
     else 
      $(this).closest("form").find(":submit").attr("disabled", "disabled").removeClass('enabled').addClass('disabled');  
     }); 
     }); 

该pases值到选择(ID = “catselect”)

<textarea title="Post Text" name="content-text-ta" id="content-text-ta"></textarea> 
<dl id="sample" class="dropdown"> 
        <dt><a href="#" ><span class="cat" tabindex="1">Elige categoria</span></a></dt> 
         <dd style="z-index: 1;"> 
          <ul> 
           <li><a href="#">Citas Famosas<span class="value">1</span></a></li> 
           <li><a href="#">Frases Bonitas<span class="value">2</span></a></li> 
          </ul> 
         </dd> 
        </dl> 
        <fieldset"> 
         <select name='categories' id='catselect' class='tdomf_categories' size='1'> 
          <option id="result"></option> 
         </select> 
        </fieldset> 

回答

0

使用以下代码中的文字区域和下拉:

function validateForm() { 
    if ($("#content-text-ta").val() !== "" && $("#catselect").val().length > 0) { 
     $("form").find("input[type*='submit']").removeAttr("disabled").removeClass('disabled').addClass('enabled'); 
    } else { 
     $("form").find("input[type*='submit']").attr("disabled", "disabled").removeClass('enabled').addClass('disabled'); 
    } 
} 
$(function() { 
    $("#catselect").html(""); 
    $(".dropdown dd ul li a").click(function() { 
     var text = $(this).html(); 
     $(".dropdown dt a span").html(text); 
     $(".dropdown dd ul").hide(); 
     $("#catselect").val($("#sample").find("dt a span.value").html()); 
     validateForm(); 
    }); 
    $("#catselect").append($("<option/>", { 
     value: "", 
     text: $(this).find('span').first().contents().filter(function() { 
      return this.nodeType == 3; 
     }).text() 
    })); 
    $(".dropdown dd ul li").each(function() { 
     $("#catselect").append($("<option/>", { 
      value: $(this).find(".value").text(), 
      text: $(this).find('a').first().contents().filter(function() { 
       return this.nodeType == 3; 
      }).text() 
     })); 
     $("#catselect, #content-text-ta").bind("keyup change click", validateForm); 
    });​ 

Live Demo | Source