在项目详细信息页面中运行jQuery

问题描述:

我试图限制使用Project Server 2010的项目详细信息页面(PDP)中的“项目说明”自定义字段的长度。 我在内容编辑器Web部件中使用了以下jQuery到PDP:在项目详细信息页面中运行jQuery

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
<script> 
    $(document).ready(function(){ 
     var textArea = $("textarea[title$='Project Notes']"); 
     textArea.keypress(function() 
     { 
      var text = textArea.text(); 
      if(text.length > 10) 
      { 
       alert("Project Notes cannot exceed 100 characters in length."); 
       textArea.val(text.substring(0,9)); 
      } 
     }); 
    }); 
</script> 

但是,当用户键入到文本区域时,什么也没有发生。事件不会触发。我曾尝试对代码进行各种修改,但结果相同。 请让我知道我缺少什么。

谢谢。

您可以使用maxlength属性作为html元素。

<textarea maxlength="10" rows='5' cols='25'></textarea> 

,如果我们用你的脚本去,然后用.val(),而不是.text()。表单元素确实具有您必须输入文本的值。无论是input type text还是textarea

var textArea = $("textarea[title$='Project Notes']"); 
textArea.keypress(function() { 
    var text = textArea.val(); 
    if (text.length > 10) { 
     alert("Project Notes cannot exceed 100 characters in length."); 
     textArea.val(text.substring(0, 9)); 
    } 
}); 

可以在fiddle here

+0

谢谢您的意见,但是,建议的解决方案不起作用。问题是事件不在Project Server页面内触发。即使我删除了keypress函数中的代码并保留了一个简单的警报,它仍然不能执行。我尝试使用键控而不是按键,但结果相同。当用户键入文本区域时事件不会触发。 – Moe 2013-03-04 05:39:28

我已经改变了文本区域的文本框中尝试了这一点,并在事件开始正常射击。