14

(回答は別の質問に集約されます)

次の jquery 1.3.2 コードは機能します。

<input type="select" value="236434" id="ixd" name='ixd' />

<script>
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
</script>

コンソールの表示:

[input#ixd 236434]

[input#ixd 236434]

ただし、入力を「非表示」に設定すると、セレクターが機能しなくなります。手がかりはありますか?

<input type="hidden" value="236434" id="ixd" name='ixd' />

<script>
console.log( $('#ixd') );
console.log( $("input[name='ixd']") );
</script>

コンソールの表示:

[]

[]

4

6 に答える 6

27

なぜそれが失敗するのかわかりません。私は定期的に仕事で同じことをしていますが、フォームフィールドが非表示になっているかどうかに関係なく機能します。

おそらくこれを試してください:

<input type="hidden" value="236434" id="ixd" name='ixd' />

<script>
    console.log($("#xid").val())
</script>

これにより、非表示フィールドの値が取得されます。フォーム フィールドから値を取得するには、.val()メソッドを使用する必要があります。

于 2009-06-15T15:14:55.713 に答える
9
<input type="select" value="236434" id="ixd" name='ixd' />

それは有効なマークアップですか?

可視の入力を選択すると、明示的に を呼び出さなくても、その値が取得されるように見えますが、非表示の入力を選択すると、次のようにはなり.val()ません。

試す:

console.log( $('#ixd').val() );
console.log( $("input[name='ixd'][type='hidden']") );

console.log( $("input[name='ixd']").val() );
于 2009-06-15T15:24:01.167 に答える
2

これは、コンソールの問題である可能性があります。テストを実行しましたが、まだ要素のインスタンスを取得しているようです。ここで何をしようとしているのか正確にはわかりません。

オブジェクトが見つかったかどうかを検証しようとしているだけの場合は、長さプロパティを確認してください

console.log( $('#xid').length );

フィールドの値を取得しようとしている場合は、val メソッドを使用します。

console.log( $('#xid').val() );

最後に、ソリューションで DOM がまだ完全にロードされていない可能性があります。ロジックを document.ready 呼び出し内にラップしていることを確認してください。

$(document).ready(function() {
    console.log( $('#xid').val() );
});
于 2009-06-15T15:21:39.567 に答える
1

ASP.Netでこれを行う場合は、ブラウザーの[ソースの表示]オプションを使用して、実行時にコントロールのIDを確認してください。たとえば、コントロールがコンテンツページで宣言されている場合、コントロールIDが期待したものとは異なる場合があります。この場合、マスターページによって駆動されるIDが割り当てられます。jQueryでIDをハードコーディングするのではなく、ASP.Netインライン構文を使用してClientIDプロパティを参照できます。これにより、マスターページまたはコンテンツページのコントロール階層の変更からも保護されます。

それで...

$('#<%= myHiddenControl.ClientID %>').val();

...よりも良い選択でしょう...

$('#ctl00_ContentPlaceHolder1_ctl00_ContentPlaceHolder1_myHiddenControl').val();

...両方とも機能しますが。

于 2012-05-10T16:15:03.867 に答える
0

$('#field_id').val()隠しフィールドがネストされているため、値が返されないという問題がありました( body > div > form > ul > li > p)。それをulの外に移動すると、問題が解決しました。

于 2010-12-15T18:37:05.817 に答える
0

上記のいずれも機能しない場合は、試してください

$('#xid').attr('value');
于 2016-03-30T02:51:19.573 に答える