1

可能重复:
停止按下提交按钮,直到在文本区域中写入足够的单词

所以基本上我有下面的代码。我希望在文本区域中的字数超过 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>
4

3 回答 3

1

您的代码很好,问题是您正在触发的事件。如果您在 中输入超过 5 个单词,则启用textareasubmit按钮,但如果您突出显示所有文本并将其删除,则wordCount保持不变,因此该submit按钮不会被禁用。

尝试更改onkeydownonkeyup,这应该可以解决问题。

编辑

针对您的评论,请检查您使用的元素的 ID 是否唯一,否则会导致问题!

于 2012-09-27T10:03:02.500 回答
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 条件。

于 2012-09-27T09:50:20.777 回答
0

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

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

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

      }

于 2012-09-27T09:53:15.477 回答