达到字数时启用提交按钮

时间:2012-09-27 09:46:35

标签: javascript html

  

可能重复:
  Stop submit button being pressed until enough words are written in text area

所以基本上我有下面的代码。我想在文本区域中的字数超过5时启用提交按钮。下面的代码不起作用。想法?

<form method="post" id="writearticle" action="submitarticle.php"> 
    <textarea rows="30" cols="85" id="content" name="content" placeholder="Write the article here. Try to abide by the instructions and keywords provided." onkeydown="checkWordCount();" ></textarea> 
    <br />      
    <input type="submit" id="submit" name="submitarticle" value="Submit Article" class="submit" disabled />     

<script type="text/javascript">                         
    function checkWordCount() { 
    var wordCount = document.getElementById('content').value.split(" ").length;
    if (wordCount > 5) { 
        document.getElementById('submit').disabled = false; 
        } else { 
            document.getElementById('submit').disabled = true; alert("lol"); 
        } 
    }
    </script>
    </form>

3 个答案:

答案 0 :(得分:1)

你的代码很好,问题是你正在开火的事件。如果您在textarea中输入的字数超过5个,则会启用submit按钮,但如果您突出显示所有文字并将其删除,则wordCount保持不变,因此submit按钮未被禁用。

尝试将onkeydown更改为onkeyup,这样可以解决问题。

修改

在回复您的评论时,检查您使用的元素的ID是否唯一,否则会导致问题!

答案 1 :(得分:0)

试试这个

s = document.getElementById("content").value;
s = s.replace(/(^\s*)|(\s*$)/gi,"");
s = s.replace(/[ ]{2,}/gi," ");
s = s.replace(/\n /,"\n");
len = s.split(' ').length;

现在将len值传递给if条件。

答案 2 :(得分:0)

在textarea的onkeyup函数中调用函数 - onkeyup =“checkWordCount();”

然后使用jQuery来检查这样的计数。    

  function checkWordCount()
    {
      var lengthofText=$("#content").val().length;
        if (lengthofText> 5) { 
               document.getElementById('submit').disabled = false; 
            } else { 
               document.getElementById('submit').disabled = true; 
            } 

      }