JSP文本区长度检查问题

JSP textarea length check issues

本文关键字:检查 问题 文本区 JSP      更新时间:2023-09-26

我试图使用这里发现的一些最大长度函数,但我遇到了一些问题。当用户按下提交按钮时,我试图检查表单的长度,但是变量中的值在提交表单之前不会改变。以下是相关代码:

<tr>
<td align="left"><b>Comments:</b><br>
<form:textarea path="currentProjTask.comments" id="currComments" cols="100" rows="10" /></td>
</tr>

下面是创建弹出窗口的代码。该值将始终是页面加载时的值,直到它到达$("#command").submit();行,则为用户输入的值。

var newcomments = document.getElementById("currComments").value;
var currentcomments = newcomments.length;
alert("currentcomments = " + currentcomments + " newcomments = " + newcomments);
    $("#command").submit();
    var newcomments = document.getElementById("currComments").value;
var currentcomments = newcomments.length;
    alert("currentcomments = " + currentcomments + " newcomments = " + newcomments);

我尝试了许多不同的方法来检查长度,包括按键等功能,但这些都不起作用,但都没有抛出任何错误。

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

编辑:

我尝试过的函数没有做任何事情。例如,如果我在textarea块中添加onkeydown='return maxLength(this,"30");',并且函数

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

这不起任何作用。用户仍然可以输入并提交表单。

使用获取文档的警告框。getElementById(当用户点击提交按钮时),接收到的值是加载页面时表单的初始值。用户可以更改文本区域中的值,但警告框中的值将始终是该框中的初始值。

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

好,这里有一些问题:

  • event不是所有浏览器中的全局变量。你的<textarea>标签应该是这样的:

    <textarea onkeypress='return checkMaxLength(event, this, 30)'></textarea>
    
  • 名称"maxLength"在Firefox中似乎有问题。因此,我将名称改为"checkMaxLength"。

  • 防止默认操作的方法在标准兼容的浏览器中与在IE中不同。在这些浏览器中,您必须从事件对象调用方法"preventDefault()"。因此:

    event.returnValue = false;
    if ('preventDefault' in event) event.preventDefault();