0

本当にイライラします。私はいつもこのように .val() を使ってきましたが、今はうまくいきません。

jQuery v1.7.2 を使用しています。

私は非表示の値で開始するフェイスボックスボックスを持っているので、フェイスボックスが完了したときにメインページでどの値を変更する必要があるかがわかります。

私はこのHTMLコードを持っています:

<hidden type="hidden" value="hello" id="testid" name="testname" />

そして、私が記録したjQueryで:

console.log($('[name="testname"]'));
console.log($('#testid'));
console.log($('#testid').val());
console.log($('[name="testname"]').val());

そして、これは出力します:

[<hidden type=​"hidden" value=​"hello" id=​"testid" name=​"testname">​&lt;/hidden>​]
[<hidden type=​"hidden" value=​"hello" id=​"testid" name=​"testname">​&lt;/hidden>​]
(empty line)
(empty line)

では、なぜこの値にアクセスできないのでしょうか?

私は AJAX で facebox を使用しています。div で facebox を使用すると、dom 要素がコピーされて同じ ID を持つ 2 つが取得されることはわかっていますが、これは AJAX では発生しませんか? また、最初の 2 行でより多くの要素が返されますね。奇妙なことに、Chrome の要素を調べると、入力ボックスが次のように変更されていることがわかります。

<hidden type="hidden" value="hello" id="testid" name="testname"></hidden>

でも、もしかしたら関係ない?

4

2 に答える 2

5

隠された要素はありません。ということ<input type="hidden">ですか?

実際にカスタム要素を使用したい場合は、.prop()メソッドを使用する必要があると思います:

console.log($('#testid').prop("value"));
于 2012-07-06T07:06:11.887 に答える
2

HTML には要素がないため、jQuery にはそのメソッド<hidden>をサポートするために必要な特別な処理がありません。val()

あなたがしたい<input>。一般に、このタイプのエラーを検出できる自動バリデーターを介して HTML を実行することをお勧めします。

(使用することもできますattr('value')が、有効な HTML を記述する方がはるかに優れています)

于 2012-07-06T07:06:40.363 に答える