Nay*_*ana 9 javascript php jquery textarea
我创建了一个表单供用户提交摘要.但在提交时我需要检查天气他们已经添加了超过250个单词.我只需要250个单词.这该怎么做 ?
我尝试了一些JavaScript,但它仅适用于250个字符.
这是我的代码
function maxlength(element, maxvalue)
{
var q = eval("document.upload."+element+".value.length");
var r = q - maxvalue;
var msg = "Sorry, you have input "+q+" characters into the "+
"text area box you just completed. It can return no more than "+
maxvalue+" words to be processed. Please abbreviate "+
"your text by at least "+r+" words";
if (q > maxvalue) alert(msg);
}
Run Code Online (Sandbox Code Playgroud)
我的textarea是:
<tr>
<td><label>Abstract Details</label> </td>
<td><label>Please enter data, at most 250 words:</label>
<br/><textarea rows="6" cols="80"name="box_name" onChange="maxlength('box_name', 250)" style="width: 257px; height: 131px;"> </textarea></td>
</tr>
<tr>
Run Code Online (Sandbox Code Playgroud)
如何限制250个单词.
提前致谢
要防止在textarea中超过250个字符时提交表单,请添加id="box_id"到textarea并将此事件添加到表单元素:
onsubmit="return maxlength(getElementById('box_id'), 250);
Run Code Online (Sandbox Code Playgroud)
现在在您的函数中将此值拆分多个空格:
function maxlength(element, maxvalue){
var q = element.value.split(/[\s]+/).length;
if(q > maxvalue){
var r = q - maxvalue;
alert("Sorry, you have input "+q+" words into the "+
"text area box you just completed. It can return no more than "+
maxvalue+" words to be processed. Please abbreviate "+
"your text by at least "+r+" words");
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
要利用新的HTML属性,您还可以将"pattern"属性添加到textarea,并将正则表达式限制输入设置为250个单词:
<textarea rows="6" cols="80"name="box_name" onChange="maxlength(this, 250)" style="width: 257px; height: 131px;"
pattern="^(?:\b\w+\b[\s\r\n]*){1,250}$">
</textarea>
Run Code Online (Sandbox Code Playgroud)
这个正则表达式模式来自以下SO线程,它接触250个单词的类似问题:使用正则表达式限制响应中的单词数