禁用表单提交按钮,直到填充了textarea?

时间:2013-04-30 10:07:28

标签: javascript

有人可以请求帮助,因为我已经尝试了各种javascripts来让我的表单提交按钮保持禁用状态,直到用户在textarea中输入文本但没有工作。

我希望在用户输入一些文字之前禁用提交按钮。有什么建议吗?

  <form action="includes/welcomebio.php" method="post" id="form12" class="form12">          
 <textarea id="bio" textarea name="bio" data-id="bio" placeholder="Hi, my name is Peter. I'm 22 years old from North Wales." onKeyUp="checkWordCount();" data-required="true"><?php echo htmlspecialchars($profile['bio']); ?></textarea>
<input type="submit" class="welcome-submit" name="submit" value="Next ->" id="submit"/>
</form>

    <script type="text/javascript"> 
function disable() 
{ 
if(document.textarea.bio.value=="") 
{ 
document.textarea.submit.disabled=true; 
} 
else 
{ 
document.textarea.submit.disabled=false;    
} 
} 
</script> 

3 个答案:

答案 0 :(得分:3)

您的代码有很多问题:

  1. 尽量不要使用内联javascript
  2. 你的textarea onKeyUp调用一个不存在的函数
  3. 您正在尝试设置错误元素的禁用状态(实际上您的javascript无效)
  4. 你也有一些无效的HTML
  5. 这就是你想要的:

    HTML

    <form action="includes/welcomebio.php" method="post" id="form12" class="form12">
        <textarea id="bio" name="bio" data-id="bio" data-required="true" placeholder="Hi, my name is Peter. I'm 22 years old from North Wales.">
            <?php echo htmlspecialchars($profile['bio']); ?>
        </textarea>
        <input type="submit" class="welcome-submit" name="submit" value="Next ->" id="submit" />
    </form>
    

    JAVASCRIPT

    window.onload = function () {
        document.getElementById("bio").onkeyup = checkWordCount;
        checkWordCount();
    };
    
    function checkWordCount() {
        if (document.getElementById("bio").value == "") {
            document.getElementById("submit").disabled = true;
        } else {
            document.getElementById("submit").disabled = false;
        }
    }
    

    Here is a working example

答案 1 :(得分:0)

您正尝试禁用textarea而不是提交按钮。您的代码不是有效的JavaScript。 保持最初禁用提交按钮,并仅在textarea中包含某些内容时启用它。此外,由于您正在使用textarea的占位符,因此您的textarea永远不会为空,因此请检查

document.getElementById("bio").value = ""
除非用户更改,否则

将始终返回false。

答案 2 :(得分:0)

试试这个

     <body onload="disable()">
 <form action="includes/welcomebio.php" method="post" id="form12" class="form12">          
 <textarea id="bio" textarea name="bio" data-id="bio" placeholder="Hi, my name is Peter. I'm 22 years old from North Wales." onKeyUp="disable();checkWordCount();" data-required="true"></textarea>
<input type="submit" class="welcome-submit" name="submit" value="Next ->" id="submit"/>
</form>
</body>
    <script type="text/javascript"> 
function disable() 
{ 
    if(document.getElementById("bio").value=="") 
    { 
    document.getElementById("submit").disabled=true; 
    } 
    else 
    { 
    document.getElementById("submit").disabled=false;    
    } 
} 
</script>