0

我有一个我无法解决的问题。在我的课堂上,我设置:

text.Attributes.Add("oldValue", text.Text);

调试代码我可以看到值设置正确。当我使用 chrome 查看页面源时,我看到以下内容:

<input name="astextMon" type="text" value="4,25" 
       id="textMon" class="inputText"
       autocomplete="on" 
       onfocus="ValidateReadStatus(this.id,this.ValueId);SetFocus(this.id);"
       valueid="408412" 
       oldvalue="4,25" 
       onchange="return GridOnChange('0;0',this,'textMon',1,true);" 
       onkeydown="return GridOnKeyDown(this.id,'0;0');"           
       ondblclick="SetTextPos('0;0');"
>

如您所见,该oldvalue属性已设置并具有正确的值,但如果我尝试访问它,我总是会得到undefined. 即使从 Chrome 控制台访问元素。

我在这里想念什么?

编辑。将代码放在这里时发生了名称属性中的拼写错误。那不是问题。我认为区分大小写也不是问题,因为当我删除时:

text.Attributes.Add("oldValue", text.Text);

在我的班级中, oldvalue="4,25" 属性从元素中消失了。我也尝试将 oldValue 更改为 oldvalue,但同样的问题仍然存在。

我正在尝试使用

alert(element.oldvalue) or alert(element["oldvalue"]) or 
alert(element["oldValue"]) or alert(element["oldValue"]) none work.

如果我alert(element.value)正确键入它会提醒 value 属性。

4

5 回答 5

0

JavaScript 区分大小写:
... oldvalue="4,25" ...text.Attributes.Add("oldValue", text.Text);
引用 2 个不同的属性。

于 2012-08-24T11:52:32.970 回答
0

好的,所以我通过使用解决了我的问题

$(element).attr("oldValue");

我不知道为什么在使用 JQuery 时我可以很好地访问该属性,但没有它它是未定义的。如果有人有答案,我很想听听。

于 2012-08-24T13:54:27.103 回答
0

您可以使用类似这样的方法来获取您定义的属性:

document.getElementById('textMon').attributes['oldvalue'].value;

您将在哪里获得:oldvalue: 4,25

还有几件事:

  1. name=astextMon"应该name="astextMon"
于 2012-08-24T12:00:31.910 回答
0

也许问题是在您的代码片段中输入标签无效,在名称属性之后您必须添加引号字符。

<input name="astextMon" ...>
于 2012-08-24T11:39:07.027 回答
0

缺少第一个引号name=astextMon"将其更改为name="astextMon"

于 2012-08-24T11:42:16.223 回答