我有一个带有target =“_ blank”和onsubmit =“return validateForm()”的表单,以及一个名为“wordList”的textarea。这是我的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计算和验证文本区域中的行数更好的方法?
答案 0 :(得分:2)
这是因为php代码在服务器端而不是客户端执行,所以你需要编写javascript替代代码而不是php代码......
这里无论你在php代码中写什么,它都不会返回true或false,你想得到wordList ...所以它会从客户端提交表单
答案 1 :(得分:1)
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;
的console.log(计数); //输出4
var countLines = document.getElementById("wordList").rows;
Codepen网址供参考 - http://codepen.io/nagasai/pen/gMrpre
答案 2 :(得分:1)
您必须使用JavaScript才能实现此目的。你需要找出textarea有多少个换行符。这是一个类似问题的reference。
enteredText = textareaVariableName.val();
numberOfLineBreaks = (enteredText.match(/\n/g)||[]).length;
如果换行符的数量与您的条件不符,则必须阻止因使用JS按下提交按钮而导致的操作。