我試圖使用這裏找到的一些最大長度函數,但我遇到了一些問題。我試圖在用戶按下提交按鈕時檢查表單的長度,但在提交表單之前,變量中的值不會更改。以下是相關代碼:JSP textarea長度檢查問題
<tr>
<td align="left"><b>Comments:</b><br>
<form:textarea path="currentProjTask.comments" id="currComments" cols="100" rows="10" /></td>
</tr>
下面是創建彈出窗口的代碼。該值將始終是頁面加載時的值,直到它到達$(「#command」)。行,那麼它將是用戶輸入的任何內容。
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);
我已經嘗試了許多不同的方法來檢查長度,包括按鍵功能等,這些都不工作,但沒有人扔任何錯誤。
我非常感謝您的幫助,非常感謝。
編輯清晰度:
我試過的功能沒有做任何事情。例如,如果我加入onkeydown ='return maxLength(this,「30」);'到文本區塊,並且功能
function maxLength(field,maxChars)
{
if(field.value.length >= maxChars) {
event.returnValue=false;
alert("more than " +maxChars + " chars");
return false;
}
}
這什麼都不做。用戶仍然可以鍵入並提交表單。
使用提示框獲取document.getElementById(當用戶點擊提交按鈕時),收到的值是頁面加載時窗體的初始值。用戶可以更改文本區域中的值,但警告框中的值始終是框中的初始值。
我還應該提到這是一個.jsp頁面。
這可能會幫助人幫你,如果你將是一個更具體一點究竟如何,你已經嘗試過的東西不起作用。 – Pointy 2011-12-28 16:48:54
尖尖的,我編輯的頁面清晰。謝謝。 – 2011-12-28 17:07:27
您將「30」作爲字符串而不是30作爲數字傳遞。這有很大的不同。另請注意,將'event.returnValue'設置爲'false'僅適用於Internet Explorer。在其他瀏覽器中,你必須調用'event.preventDefault();' – Pointy 2011-12-28 17:17:55