清空Textarea /禁用提交期限

时间:2016-03-10 13:25:18

标签: jquery html forms validation

我有一个问题,我不知道解决方案:

我有一个带有小型基本验证的表单,只检查textarea是否为空。

如果它为空:if-loop应该导致以下操作:

  1. 显示消息(并淡出)。
  2. 添加一个类以提交按钮(黑色,用于"已访问")
  3. 添加"禁用属性"按钮
  4. 等一段时间(5000毫秒) 撤消步骤2.和3.,再次点击按钮,如果再次使用emptytextarea游戏步骤1-4再次点击它。
  5. 我的功能:

    $("#abschleppform").submit(function() {
        if($("#abschleppkennzeichen").val() == ""){
            $("#response").html("<p>Please enter your text!</p>").fadeOut(5000);
            $("#submitabschleppdienst").attr("disabled", true).addClass("black"); 
             setTimeout(function(){
                 $("#submitabschleppdienst").attr("disabled", false).removeClass("black"); 
              }, 5000);
        }
        else {
            alert("Message has been sent");
            /*$.ajax({
                url: "kundenzufriedenheit/abschleppkundenzufriedenheit.php",
                type: "POST",
                async: true,
                cache: false,                    
                data: $(this).serialize(),
                success: function(msg)
                    {
                        $("#response").html(msg);
                        $("#response").fadeOut(5000);
                    }
            });*/
           $("#submitabschleppdienst").attr("disabled", true).addClass("black"); 
        }
        return false;
    });
    

    我的HTML:

    <form action = "kundenzufriedenheit/abschleppkundenzufriedenheit.php" method = "POST" id="abschleppform" class="contact-form">
        <h4 class="first">Kennzeichen</h4>
        <textarea rows="5" id="abschleppkennzeichen" class="kennzeichen" type="text" name="abschleppkennzeichen" ></textarea>
        <input type="submit" id="submitabschleppdienst" value="Absenden">
        <div id="response"></div>
        <div id="response_2"></div>
    
    </form>
    

    正在运行:https://jsfiddle.net/tigercode/60f55L9q/16/

    问题:发送空文本区域,它不会重置以再次播放上述步骤(消息/禁用/启用...)。 meesage只显示一次。

    任何人都可以帮助我吗? 最好, 虎

2 个答案:

答案 0 :(得分:1)

据我所知,你的功能中唯一缺少的是让#response再次可见。这可以这样完成:

setTimeout(function(){
    $("#submitabschleppdienst").attr("disabled", false).removeClass("black"); 
    $('#response').html('').fadeIn(0);   
}, 5000);

添加完成后,您的JSFiddle会按照您的问题描述的方式运行。

答案 1 :(得分:0)

就是这样!有时候正确的答案是如此简单......而且我的吸收速度很慢......“fadeout”不会杀死div中的文本,它会将内容中的内容杀死整个div。点击第二次后,它没有找到我的div id =“response”再次显示文本^^,所以我必须先恢复div ...

亲切的问候, 老虎