启用/禁用表单提交按钮不起作用

时间:2012-12-23 02:49:55

标签: jquery forms validation

我一直在处理一个表单,我希望禁用提交按钮,除非选择了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');      
      });
        });

textarea和dropdown将值设置为select(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>

1 个答案:

答案 0 :(得分: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