この記事では、テキスト ボックスをクリックすると、ドロップダウン チェック ボックスが表示され、実際のアプリケーションでの効果はそれほど単純ではない可能性があります。シンプルですが、学習者の理解と拡張を促進するための例として使用できます。
コードは次のとおりです:
<html> <head> <meta charset="gb2312"> <title>js点击文本框弹出可选择的checkbox复选框</title> <style type="text/css"> #div{ margin-bottom:10px; position:relative; } #div1{ width:153px; padding-top:0px; padding-left:0px; position:absolute; } #div1 ul{ margin-top:0px; padding-left:0px; background-color:#ccc; list-style:none; } #div1 ul li{ padding-left:0px; } #div1 ul li input{ margin-left:15px; } .close{ display:none; } .open{ display:block; } </style> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(function(){ var position=$("#xx").offset(); $("#div1").offset({ top:position.top+22, left:position.left }); $("#xx").click(function(){ $("#NG").toggleClass("open"); }); $("#div1 input[name=ng]").click(function(){ var arr=new Array(); $("input[name=ng]:checked").each(function(key,value){ arr[key]=$(value).val(); }); $("#xx").val(arr.join(",")); }) }) </script> </head> <body> <div id="div"> <div align="center" id="div2" > <form id="form1"> <input type="text" readonly="readonly" id="xx"/> <input type="submit" value="查询"/> </form> </div> <div id="div1"> <ul class="close" id="NG" > <li><input type="checkbox" name="ng" value=1 />1</li> <li><input type="checkbox" name="ng" value=2 />2</li> <li><input type="checkbox" name="ng" value=3 />3</li> </ul> </div> </div> </body> </html>
上記のコードは要件を満たしています。ここではその実装プロセスを紹介します。
コードのコメント:
1.$(function(){})、ドキュメント構造が完全にロードされたら、関数内のコードを実行します。
2.var Position=$("#xx").offset()、 はドキュメント document を基準としたテキスト ボックスのオフセットを取得し、offset() 関数はオブジェクトを返します。 、このオブジェクトには left と top の 2 つの属性が含まれており、それぞれドキュメントに対する水平オフセットと垂直オフセットを表します。
3.$("#div1").offset({top:position.top+22,left:position.left}), ポップアップの相対ドキュメントを設定しますドロップダウン メニュー コンテナのオフセット。最初のオフセットに 22 を追加して、テキスト ボックスの下に表示されます。
4.$("#xx").click(function(){$("#NG").toggleClass("open");}), はテキスト ボックス イベント ハンドラー関数をクリックし、開いているスタイル クラスを削除と追加に切り替え、つまりドロップダウン メニューの表示と非表示を設定します。
5.$("#div1 input[name=ng]").click(function(){ }), name 属性値が のテキストボックスに対するクリックイベント処理を登録NG機能。
6.var arr=new Array(), は、選択されたチェックボックスの値を保存する配列を作成します。
7.$("input[name=ng]:checked").each(function(key,value){arr[key]=$(value).val();}),選択したチェックボックスの値を配列に保存します。
8.$("#xx").val(arr.join(","));, 配列要素を文字列に連結し、テキスト ボックスに書き込みます。
この記事が、JavaScript プログラミングを学習する皆さんのお役に立てれば幸いです。