0

我正在尝试这样做,以便当用户在 textarea 中键入超过 10 个单词时,启用提交按钮。下面是我的代码摘录。即使那里有 10 多个单词,它也不让我提交。任何帮助,将不胜感激。

            <?php
                    if($auth = 1)
                    {
                        echo "<center><h1>Write Article</h1><br /></center>";
                        echo "<form method=\"post\" action=\"processarticle.php\" id=\"myform\" >";
                        echo "<b>Keywords:</b> " . $array['keywords'];
                        echo "<br />";
                        echo "<b>Purpose:</b> " . $array['purpose'];
                        echo "<br />";
                        echo "<b>Style:</b> " . $array['style'];
                        echo "<br />";
                        echo "<b>Instructions:</b> " . $array['instructions'];
                        echo "<br />";
                        echo "<b>Length:</b> " . $array['length'];
                        echo "<br />";
                        echo "<hr>";
                        echo "<textarea rows=35 cols=85 name=\"content\">";
                        echo "</textarea>";
                        echo "<br />";
                        echo "<input type=\"hidden\" name=\"refferer\" value=\"1\" />";
                        echo "<input type=\"hidden\" name=\"articleid\" value=\"" . $arid . "\" />";
                        echo "<input type=\"hidden\" name=\"articletitle\" value=\"" . $articletitle . "\" />";
                        echo "<input type=\"submit\" value=\"Submit Article\" id=\"submit\" name=\"submit\" />";
                        echo "</form>";
                    }

                ?>
                <br /><br /><br />
                <!-- /main -->
                </div>


            <!-- content -->
            </div>

        <!-- /content-out -->
        </div>

        <!-- footer -->
        <?php include($_SERVER['DOCUMENT_ROOT'] . '/includes/footer.php'); ?>
        </body>
            <script type="text/javascript">
                $('#myform').submit(function(event) {
                    var text = $("#content").val();
                    text = text.split(" ");
                    // check for at least 10 words
                    if(text.length < 10){
                        // prevent submit
                        event.preventDefault();
                        return false;
                    }
                });
            </script>
4

4 回答 4

1

您已经使用过#content,但没有id为您的文本区域定义任何内容。定义一个 ID 并访问它。添加这样的id属性,

echo "<textarea rows=35 cols=85 name=\"content\" id=\"content\">";
于 2013-03-18T04:45:59.087 回答
1

您尚未将内容定义为 Id .. 声明#content为文本区域的 id..

"<textarea rows=35 cols=85 name=\"content\" id=\"content\">";

//查找单词计数..

String input = $('content').val();
String[] elements = input.split(" ");

if(elements.length>10){
//your code
}
于 2013-03-18T04:47:54.063 回答
0

由于这是表单上的一个侦听器,并且 textarea 有一个名称,因此您可以将 textarea 的值读取为:

    var text = this.content.value;

.

    text = text.split(" ");

    // check for at least 10 words
    if(text.length < 10){

这实际上只会检查是否有 10 个空格,如果你想检查看起来更像一个单词的东西,那么寻找单词字符串:

    var words = text.match(/\b\w+\b/g);

然后将拆分为单词字符串;

    if (words && words.length < 10) { 
        ...
于 2013-03-18T04:54:40.007 回答
0
var text = encodeURIComponent($("#content").val());
于 2013-03-18T05:07:50.970 回答