0

解決できていない問題があります。私のクラスでは、次のように設定しました。

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

コードをデバッグすると、値が適切に設定されていることがわかります。ページのソースをクロムで表示すると、次のように表示されます。

<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 コンソールから要素にアクセスする場合でも。

ここで何が欠けていますか?

編集。ここにコードを配置するときに name 属性のタイプミスが発生しました。それは問題ではありません。大文字と小文字の区別も問題ではないと思います。削除すると:

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)すると、値属性が正しく警告されます。

4

5 に答える 5

0

次のようなものを使用して、自分で定義した属性を取得できます。

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

入手場所:oldvalue: 4,25

さらにいくつかのこと:

  1. name=astextMon"する必要がありますname="astextMon"
于 2012-08-24T12:00:31.910 に答える
0

さて、私は使用して問題を解決しました

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

JQueryを使用すると属性に問題なくアクセスできる理由がわかりませんが、それがないと未定義になります。誰かが答えを持っているなら、私はそれを聞きたいです。

于 2012-08-24T13:54:27.103 に答える
0

name=astextMon"変更の最初の引用符がありませんname="astextMon"

于 2012-08-24T11:42:16.223 に答える
0

おそらく問題は、コード スニペットで入力タグが無効であることです。name 属性の後に引用文字を追加する必要があります。

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

JavaScript は大文字と小文字を区別します: 2 つの異なる属性
... oldvalue="4,25" ...text.Attributes.Add("oldValue", text.Text);
参照してください。

于 2012-08-24T11:52:32.970 に答える