2012-02-18 13 views
10

私はこのような異なるフォームオブジェクトを保持する変数を持っている... $(formId)jQuery:最初の子入力をフォーム内で選択しますが、タイプ:hiddenの場合は選択しないでください。

各フォームにはのように異なっているいずれかの最初の要素として、非表示の入力フィールドを持っているか、最初の子は、通常の入力(タイプ=「テキスト」でありますまたは何か他のもの)

は、どのように私はいつも、私はそれがこのようなものであるべきと思っ

$(formId).find("input:first-child:not[type='hidden']") 

最初の「通常」の入力フィールドを選択することができます。ですから、私が必要とするものが不思議ならば、フォームの最初の入力フィールドにフォーカスを当てたいのですが、最初の入力が隠れている場合は、次の「可視」入力に設定したいと思っています。あなたのケースで隠されたセレクタの仕事:

答えて

18

:first-childセレクタは、最初の子、ないの最初の項目である要素を選択(私は...のようなマークアップに見えるものを手に入れるのでわかりません) jQueryコレクション。
コレクションの最初の要素を選択するには、jQueryの:firstセレクタを使用します。

:notの実装も間違っています。
:not[type='hidden']:not()[type='hidden']に等しい[type='hidden']に等しいです - あなたは何をしたいの反対

input:not([type=hidden]):first 
input[type!=hidden]:first 
8

$(formId).find ('input:visible:first').focus();

+3

'::


これらは、右のセレクタ(彼らは同等だ)しているvisible'は' [!タイプ= "隠された"] 'と同じではありません。 input要素に 'style =" display:none "を追加すると** **:visibleではなく** ** [type!=" hidden "]'と一致します。 –

0

使ってますか?

$(formId).find("input:first-child:not(:hidden)") 

+3

':first-child'セレクタは、最初の子要素を選択します。コレクションの最初の要素を選択するには、jQueryの ':first'セレクタを使います:' input:not([type = hidden]):first'。 –

+0

@Rob W:これは完璧に機能しているようで、適切なソリューションのようです。あなたが答えとしてそれを投稿するなら、私はそれを受け入れるでしょう。 – matt

関連する問題