2

私のHTMLフォームは次のようなものです

<form id="form1" name="form1" method="post" action="">
number: <input name="formnum" type="text" id="input_1" tabindex="1" size="30" maxlength="30" />
Title:
<select name="title" id="input_2" tabindex="2" >
   <option selected="selected" value=""></option>
   <option  value="Mr." id="option_1 ">Mr.</option>
   <option  value="Mrs." id="option_2">Mrs.</option>
   <option  value="Ms." id="option_3">Ms.</option>
   <option  value="Dr." id="option_4">Dr.</option>
</select>
<label> <input type="radio" name="gender" value="Male" id="input_3" tabindex="3"/>Male </label>
<label> <input type="radio" name="gender" value="Female" id="input_3"/> Female</label>
First Name:
<input name="fname" type="text" id="input_5" tabindex="4" value="" size="30" maxlength="30"  />
Last Name:
<input name="lname" type="text" id="input_6" tabindex="5" value="" size="30" maxlength="30"  /> 
Address:
<input name="address" type="text" id="input_7" tabindex="6" value="" size="30" maxlength="30"  />
<input type="submit" name="Submit" value="Submit" tabindex="16" />
<input type="reset" name="Submit2" value="Reset" tabindex="17" />
</form>

フォーム内のすべての入力要素のリストを、ブラウザに表示される順序で作成したいと考えています$(document).ready()inputブラウザに表示される順序でフォーム内の要素をリストするために、jQuery で次のステートメントを作成しました。

var textboxes = $("#form1 :input")
  1. ただし、このステートメントは、inputタグを持つ要素のリストのみを提供します。つまり、すべてのテキスト ボックス、ラジオ ボタン、および送信ボタンです。
  2. 指定されたリストに選択ボックス、テキスト領域が含まれていませんでした。

これは私のjQueryコードです:

$(document).ready(function(){

var textboxes = $("#form1 :input"), //gets all the textboxes         
        images = $("img.classforimg");   //gets all the images
    images.hide(); //hide all of them except the first one
alert(textboxes.length);
    textboxes.each(function (i){
                var j = i;
                    $(this).focus(function (){
                images.hide(); //hide all of them except the first one
                                images.eq(0).show();
                images.eq(j).show();
                });
            });

**Here Jquery code for form validation**
**Here Jquery code of Custom validation methods**
});

質問:

  1. $(document).ready()すべての入力テキスト ボックス、ラジオ ボタンのグループ、チェック ボックス、選択ボックス、テキストエリア、およびボタンを含むフォーム内のすべての要素のリストをブラウザに表示される順序で取得するにはどうすればよいですか?
  2. 上記のステートメントは、上記の形式のラジオ ボタンを個々のラジオ ボタンと見なし、グループとは見なしませんが、実際には上記のラジオ ボタンは同じグループです。では、これらの問題を解決するにはどうすればよいでしょうか。

友達を助けてください!ありがとう!

4

3 に答える 3

6
 $('#form1 input,#form1 select,#form1 textarea')

また

$('#form1').find('select,input,textarea')

回答 2 の更新:

$('#form1').find('select,input[type!=radio],textarea,input[type=radio]:checked')

選択した無線入力は で検索できますinput[type=radio]:checkedが、グループ内の無線オプションが選択されていない場合、オプションは表示されません。JQuery は、DOM で見つかったのと同じ順序でこれを解析する必要があります。

于 2010-02-22T14:56:25.107 に答える
1
var data = $('#form1').serialize();

次に、正規表現を実行して、文字列からキーを取得します:-)

于 2012-09-27T21:34:09.163 に答える
1

それらが表示される実際の順序が必要な場合は、これを試してください。

$("#form1").find("*").filter(function() {
    return !jQuery.inArray(this.tagName.toUpperCase(), ["INPUT","SELECT","TEXTAREA"]);
})
于 2010-02-22T15:01:42.527 に答える