我使用Internet Explorer 8和Sharepoint 2007.
简报:我有一个包含列表中各个字段的NewForm.我需要使用javascript从其中一个字段获取用户引入的值(在textBox中)并使用onChange将其粘贴到同一页面中的其他字段(其他textBox)上.
问题:我是一个JavaScript新手,我不能设置事件'onChange'来触发我的功能,或者至少触发'警告("测试")...或者只是我做错了不知道为什么(更有可能)......
让我们假设我想要使用的字段有FieldName ="IDTeam",type ="text"和id ="id_TeamField".
//My JS below "PlaceHolderMain"
_spBodyOnLoadFunctionNames.push("setTxtBoxesValues");
function setTxtBoxesValues()
{
//snipped
getField('text','IDTeam').onChange = function(){alert('Test')};
//"getField('text', 'IDTeam).onChange = function(){myFunction()};"
//If I want to call myFunction() when onChange event is triggered
}
Run Code Online (Sandbox Code Playgroud)
另外,代替getField,试过这个:
document.getElementById('id_TeamField').onChange = function(){alert('Test')};
Run Code Online (Sandbox Code Playgroud)
如果我想在触发onChange事件时调用myFunction()
我知道我做错了什么?
全部。我从来没有使用过析构函数,也没有处理过,所以这对我来说是新的。我这样做,有析构函数和处置方法的类的任务,并具有UInt64Id属性就是自动增量和静态Dictionary<UInt64,MyClass>通过ID的所有必须引用现场的情况下,MyClass。
在搜索如何正确使用它们之后,这就是我最终做的:
public class MyClass : IDisposable
{
private static Object Lock = new Object();
private static Dictionary<UInt64, MyClass> LiveInstances = new Dictionary<UInt64, MyClass>();
public UInt64 Id { get; private set; }
public MyClass()
{
lock (Lock)
{
var newId = IncrementalId();
if (newId == 0)
{
throw new ArgumentException("Reached MAX VAL");
}
Id = newId;
LiveInstances.Add(Id, this);
}
}
~MyClass()
{
CleanUpNativeResources();
}
public void Dispose()
{
lock (Lock)
{
CleanUpManagedResources(); …Run Code Online (Sandbox Code Playgroud)