【问题标题】:Having difficulty validating textarea input难以验证 textarea 输入
【发布时间】:2016-06-12 07:42:03
【问题描述】:

我有一个带有 target="_blank" 和 onsubmit="return validateForm()" 的表单,以及一个名为“wordList”的文本区域。这是我的 validateForm() 函数

    function validateForm() {
        var x = document.forms["form1"]["wordList"].value;
        if (x == null || x == "") {
            alert("Word list cannot be empty.");
            return false;
        }
    }

这可以很好地测试空输入,但是我还需要验证 wordList 是否具有最少的文本行数。我尝试在这个 if 语句之后插入一个 php 块,但是通过调用“explode()”,无论是否有输入,它最终都会打开一个新选项卡。这就是我的意思:

    function validateForm() {
        var x = document.forms["form1"]["wordList"].value;
        if (x == null || x == "") {
            alert("Word list cannot be empty.");
            return false;
        }
        <?php
        $wordInput = explode("\n", str_replace("\r", "", $_POST['wordList']));
        ?>
    }

我不确定当它在同一页面上时如何在 php 块中引用 wordList,但无论哪种方式,每当我单击提交按钮时,即使文本区域为空,它也会在另一个选项卡中打开当前页面。

有没有比使用php更好的方法来统计和验证文本区域的行数?

【问题讨论】:

  • 我的回答有帮助还是您需要更多?

标签: javascript php html


【解决方案1】:

这是因为php代码是在服务器端而不是客户端执行的,所以你需要编写javascript替代代码而不是php代码......

无论你在 php 代码中写什么,它都不会返回 true 或 false,你想要获取 wordList ...所以它会从客户端提交表单

【讨论】:

    【解决方案2】:
            var text = $("#wordList").val();   
            var lines = text.split(/\r|\r\n|\n/);
            var count = lines.length;
            console.log(count); // Outputs 4
    

    如果条件检查 countLines 超过 2,请使用它 var text = $("#wordList").val();
    var lines = text.split(/\r|\r\n|\n/); var count = lines.length; 控制台.log(计数); // 输出 4

              var countLines = document.getElementById("wordList").rows;
    

    Codepen URL 供参考 - http://codepen.io/nagasai/pen/gMrpre

    【讨论】:

      【解决方案3】:

      为此,您必须使用 JavaScript。您需要找出 textarea 有多少换行符。这里是reference 一个类似的问题。

      enteredText = textareaVariableName.val(); numberOfLineBreaks = (enteredText.match(/\n/g)||[]).length;

      如果换行数不符合您的条件,则必须防止通过JS按下提交按钮引起的动作。

      这里是question for handling this.

      【讨论】:

        猜你喜欢
        • 2021-05-20
        • 2022-01-12
        • 2015-06-22
        • 2016-12-29
        • 2011-02-04
        • 2017-07-22
        • 2015-12-18
        • 2014-12-04
        相关资源
        最近更新 更多