Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 JSP文本区域长度检查问题_Javascript_Jsp - Fatal编程技术网

Javascript JSP文本区域长度检查问题

Javascript JSP文本区域长度检查问题,javascript,jsp,Javascript,Jsp,我曾尝试使用这里的一些max-length函数,但遇到了一些问题。我曾尝试在用户按下submit按钮时检查表单的长度,但变量中的值在表单提交之前不会更改。以下是相关代码: <tr> <td align="left"><b>Comments:</b><br> <form:textarea path="currentProjTask.comments" id="currComments" cols="100" rows="10" /&

我曾尝试使用这里的一些max-length函数,但遇到了一些问题。我曾尝试在用户按下submit按钮时检查表单的长度,但变量中的值在表单提交之前不会更改。以下是相关代码:

<tr>
<td align="left"><b>Comments:</b><br>
<form:textarea path="currentProjTask.comments" id="currComments" cols="100" rows="10" /></td>
</tr>
我尝试了许多不同的方法来检查长度,包括按键功能等,但没有一种方法有效,但没有一种方法会出现任何错误

我提前感谢你的帮助,非常感谢

为清晰起见,请编辑:

我尝试过的函数没有任何作用。例如,如果我添加onkeydown='returnmaxlength(这个是“30”);'到textarea块,以及函数

function maxLength(field,maxChars)
{
   if(field.value.length >= maxChars) {
      event.returnValue=false; 
      alert("more than " +maxChars + " chars");
      return false;
     }

}  
这没用。用户仍然可以键入并提交表单

在获取document.getElementById的警报框中(当用户点击submit按钮时),收到的值是加载页面时表单的初始值。用户可以更改文本区域中的值,但警报框中的值始终是框中的初始值


我还应该提到这是一个.jsp页面。

好的,这里有一些问题:

  • 事件
    不是所有浏览器中的全局变量。您的
    标记应如下所示:

    <textarea onkeypress='return checkMaxLength(event, this, 30)'></textarea>
    

如果你能更具体地说明你尝试过的东西是如何不起作用的,这可能会帮助人们帮助你。有意思的是,为了清晰起见,我编辑了页面。谢谢。您将“30”作为字符串传递,而不是30作为数字传递。这有很大的不同。还要注意,将
event.returnValue
设置为
false
仅在Internet Explorer中有效。在其他浏览器中,必须调用
event.preventDefault()
Pointy,我添加了event.preventDefault();我已经过了30岁,但我仍然没有运气。该程序似乎只识别表单提交过程中的更改,但是(由于圣诞节的原因)没有人解释如何更改或为什么更改;当它进入浏览器时,它是HTML。我要做一件事;给我一点时间。。。
<textarea onkeypress='return checkMaxLength(event, this, 30)'></textarea>
event.returnValue = false;
if ('preventDefault' in event) event.preventDefault();