使用textarea属性创建html表单时。我偶然发现了一个问题。我已经将textarea限制在最少30个。但是当我提交表单而没有在textarea中放任何东西时,表单会得到处理。相反,当我输入允许说1个字符然后提交表单时,会显示正确的错误消息,向用户表明文本不符合最低要求。
问题是,如果我没有在textarea中输入任何内容,并提交表单,我会看到错误消息而不是提交过程中的表单。
<TEXTAREA name="text" ROWS="6" COLS="25" maxlength="500" minlength="30"> </TEXTAREA>
答案 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"