可能重复:
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>
答案 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;
}
}