minlength textarea是30但是提交没有文本的表单仍然会被处理

时间:2015-05-23 10:19:20

标签: html

使用textarea属性创建html表单时。我偶然发现了一个问题。我已经将textarea限制在最少30个。但是当我提交表单而没有在textarea中放任何东西时,表单会得到处理。相反,当我输入允许说1个字符然后提交表单时,会显示正确的错误消息,向用户表明文本不符合最低要求。

问题是,如果我没有在textarea中输入任何内容,并提交表单,我会看到错误消息而不是提交过程中的表单。

 <TEXTAREA name="text" ROWS="6" COLS="25" maxlength="500" minlength="30"> </TEXTAREA> 

3 个答案:

答案 0 :(得分:1)

根据http://www.w3schools.com/tags/tag_textarea.asp,textarea元素不支持minlength

您需要额外的验证。

请参阅此帖子:Is there a minlength validation attribute in HTML5?

试试这个jQuery验证

$( "form" ).submit(function( event ) {
    if ( $( "#textareaId" ).val().length >0 ) {
        // ok
        return;
    }

    alert("not valid");
    event.preventDefault();
});

答案 1 :(得分:1)

添加required =&#34; required&#34;作为textarea的属性应该为你解决问题。

以下是www.w3.org的详细信息:

  

minlength属性并不意味着必需的属性。如果表单控件没有minlength属性,则仍然可以省略该值;只有用户输入了一个值后,minlength属性才会启动。如果不允许空字符串,则还需要设置必需属性。

注意事项

但要记住的一件事是,textareas没有正式的minlength属性。对于输入字段的最小长度,浏览器支持仍然非常有限。 IE和Edge不支持它。许多其他浏览器在2017年仅添加了对它的支持。这是输入框,而不是textareas。输入字段的解决方法是使用正则表达式,例如:

<input pattern=".{30,500}">

但是,文本框也没有模式属性。

因此,如果你想要的东西适用于大多数浏览器,那么使用JavaScript选项将是你最好的选择。

答案 2 :(得分:0)

你有

minlength=30

应该是

minlength="30"