Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的表单中文本区域的最小长度_Javascript_Php_Jquery - Fatal编程技术网

Javascript 我的表单中文本区域的最小长度

Javascript 我的表单中文本区域的最小长度,javascript,php,jquery,Javascript,Php,Jquery,我需要为我的网站上的文本区域框设置最小长度和最大长度。我知道对于max我可以用html来做,但是min你不能。有人能帮我吗?我可以做if,else语句,但那将在提交表格后进行。我希望它在用户提交之前告诉用户长度太短。我认为jquery将是最好的,但确实不确定 代码如下所列 <!DOCTYPE HTML> <html> <head> <link type="text/css" rel="stylesheet" href="index.c

我需要为我的网站上的文本区域框设置最小长度和最大长度。我知道对于max我可以用html来做,但是min你不能。有人能帮我吗?我可以做if,else语句,但那将在提交表格后进行。我希望它在用户提交之前告诉用户长度太短。我认为jquery将是最好的,但确实不确定

代码如下所列

        <!DOCTYPE HTML>
<html> 
<head>

<link type="text/css" rel="stylesheet" href="index.css" />
<meta name="viewport" content="width=device-width" />
<title>Daily Dorm News</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$( "#datepicker" ).datepicker();
$('form').submit(function (e) {
    var value;

    // "message" pattern : from 3 to 15 alphanumerical chars

    value = $('[name="message"]').val();
    if (!/^[A-Za-z0-9]{2,150}$/.test(value)) {
        alert('Need to enter at least 3 characters to submit this form.');
        e.preventDefault();

    }

});
});
</script>

</head>
<body>
<h1> <u>Daily Dorm News</u> <br> The best place to get your latest Dorm news </h1>
<form action="posting_wall.php" method="get">
<div id="container">
Username:<input type="text" name="name" pattern="[A-Za-z0-9]{3,15}" title="Letters and numbers only, length 3 to 15" required autofocus><br>
E-mail: <input type="email" name="email" maxlength="20" required><br>

Post:<br>
<div name="message">
<textarea rows="15" cols="50" name='message' required></textarea>
</div>
Date this event took place: <input type="text" name='date' id="datepicker" required> <br>
<input type="reset" value="Reset">
<input type="submit">

</form>

</body>
</html>

每日宿舍新闻
$(函数(){
$(“#日期选择器”).datepicker();
$('form')。提交(函数(e){
var值;
//“消息”模式:从3到15个字母数字字符
value=$('[name=“message”]')。val();
如果(!/^[A-Za-z0-9]{2150}$/.测试(值)){
警报('需要输入至少3个字符才能提交此表单');
e、 预防默认值();
}
});
});
每日宿舍新闻
获取最新宿舍新闻的最佳地点 用户名:
电子邮件:
帖子:
此事件发生的日期:
设置最小长度

pattern=".{5,}"  --> 5 characters minimum
设置最小长度和最大长度

pattern=".{5,100}"  --> 5 characters minimum and 100 maximum .
范例

<input type="text" name="test" pattern=".{20,100}" required >

在每次浏览器使用中支持Html5
在OP的评论后更新

$('#myform').submit(function(e){
    if($('#message').val().length < 3){
       e.preventdefault();
    }
});
$('#myform')。提交(函数(e){
if($('#message').val().length<3){
e、 预防默认值();
}
});

请注意,您的HTML遗漏了
。也就是说,“模式”属性似乎有效:

<input type="text" required="required" pattern="^[A-Za-z0-9]{3,15}$" />
下面是一个结合了这两种解决方案的演示:

另见:


根据你的评论,我尝试了一些东西:

$('form').submit(function (e) {
    var value;

    // "message" pattern : from 3 to 15 alphanumerical chars

    value = $('[name="message"]').val();
    if (!/^[A-Za-z0-9]{3,15}$/.test(value.replace(/\n/g, ''))) {
        alert('Wrong value for "message".');
        e.preventDefault();
        return;
    }

    // "name" pattern : at least 1 digit

    value = $('[name="name"]').val();
    if (!/\d+/.test(value)) {
        alert('Wrong value for "name".');
        e.preventDefault();
        return;
    }
});

像这样?“Post:
”嗯,我试过了,尽管我在消息字段中只有一个字符,但还是让我提交。使用hml5验证多边形填充确保它在所有浏览器中都能工作。它不能验证,也不能工作。我把它作为“Post:
”但它仍然只允许我提交1个字符。知道怎么做吗?我只想这样,如果你输入少于3个字符,它将不允许你发帖,这将进入我的html文档的标题正确吗?例如“$('#myform').submit(函数(e){if($('#message').val().length<3){e.preventdefault();}}”)非常有效,谢谢!现在我可以使用这种形式让用户在用户名字段中提交至少1个数字吗?等等,我已经让它工作了,但现在它不工作了。我把[name=“name”]改为[name=“message”],因为文本区域的名称是message.hmm?我不明白你的意思,我更新了OP中的代码,以显示我有什么,一定只是一个小错误,不,仍然没有效果。我试着把它放在标题中,但在表格中,两者都不起作用。我将粘贴上面更新的代码,这样您就可以看到我在做什么。嗯,真奇怪
$('form').submit(function (e) {
    var value;

    // "message" pattern : from 3 to 15 alphanumerical chars

    value = $('[name="message"]').val();
    if (!/^[A-Za-z0-9]{3,15}$/.test(value.replace(/\n/g, ''))) {
        alert('Wrong value for "message".');
        e.preventDefault();
        return;
    }

    // "name" pattern : at least 1 digit

    value = $('[name="name"]').val();
    if (!/\d+/.test(value)) {
        alert('Wrong value for "name".');
        e.preventDefault();
        return;
    }
});