jQuery を使用して、Bootstrap_javascript スキルに基づいて入力ボックス グループ input-group を追加および削除する

WBOY
リリース: 2016-05-16 15:02:32
オリジナル
1914 人が閲覧しました

この記事では、jQuery を使用して入力ボックス グループ input-group の追加および削除操作を実装する例を紹介します。具体的な内容は次のとおりです。

これには、次のようなブートストラップ フレームワークの入力ボックス グループを使用する必要があることに注意してください。

<div class="row"> 
 <div class="col-lg-6"> 
  <div class="input-group"> 
   <span class="input-group-addon"> 
    <input type="checkbox" aria-label="..."> 
   </span> 
   <input type="text" class="form-control" aria-label="..."> 
  </div><!-- /input-group --> 
 </div><!-- /.col-lg-6 --> 
 <div class="col-lg-6"> 
  <div class="input-group"> 
   <span class="input-group-addon"> 
    <input type="radio" aria-label="..."> 
   </span> 
   <input type="text" class="form-control" aria-label="..."> 
  </div><!-- /input-group --> 
 </div><!-- /.col-lg-6 --> 
</div><!-- /.row --> 
ログイン後にコピー

デモケースのレンダリング:

ここでは、自作プラグイン inputGroup.js を提供します

パラメータは、入力ボックス グループの中央のコントロールがテキスト フィールドであるか入力ボックスであるかを設定し、入力ボックス グループの右側の操作の内容を設定できます。

inputGroup.js を使用するには、div などの対応するコンテナーにセレクターを追加し、jQuery を使用してセレクターに対応する jQuery オブジェクトを取得し、initInputGroup メソッドを呼び出します。
inputGroup.js

/** 
 * Created by DreamBoy on 2016/4/29. 
 */ 
$(function() { 
  $.fn.initInputGroup = function (options) { 
    //1.Settings 初始化设置 
    var c = $.extend({ 
      'widget' : 'input', 
      'add' : "<span class=\"glyphicon glyphicon-plus\"></span>", 
      'del' : "<span class=\"glyphicon glyphicon-minus\"></span>" 
    }, options); 
 
    var _this = $(this); 
 
    //添加序号为1的输入框组 
    addInputGroup(1); 
 
    /** 
     * 添加序号为order的输入框组 
     * @param order 输入框组的序号 
     */ 
    function addInputGroup(order) { 
      //1.创建输入框组 
      var inputGroup = $("<div class='input-group' style='margin: 10px 0'></div>"); 
      //2.输入框组的序号 
      var inputGroupAddon1 = $("<span class='input-group-addon'></span>"); 
      //3.设置输入框组的序号 
      inputGroupAddon1.html(" " + order + " "); 
 
      //4.创建输入框组中的输入控件(input或textarea) 
      var widget = '', inputGroupAddon2; 
      if(c.widget == 'textarea') { 
        widget = $("<textarea class='form-control' style='resize: vertical;'></textarea>"); 
        inputGroupAddon2 = $("<span class='input-group-addon'></span>"); 
      } else if(c.widget == 'input') { 
        widget = $("<input class='form-control' type='text'/>"); 
        inputGroupAddon2 = $("<span class='input-group-btn'></span>"); 
      } 
 
      //5.创建输入框组中最后面的操作按钮 
      var addBtn = $("<button class='btn btn-default' type='button'>" + c.add + "</button>"); 
      addBtn.appendTo(inputGroupAddon2).on('click', function() { 
        //6.响应删除和添加操作按钮事件 
        if($(this).html() == c.del) { 
          $(this).parents('.input-group').remove(); 
        } else if($(this).html() == c.add) { 
          $(this).html(c.del); 
          addInputGroup(order+1); 
        } 
        //7.重新排序输入框组的序号 
        resort(); 
      }); 
 
      inputGroup.append(inputGroupAddon1).append(widget).append(inputGroupAddon2); 
 
      _this.append(inputGroup); 
    } 
 
    function resort() { 
      var child = _this.children(); 
      $.each(child, function(i) { 
        $(this).find(".input-group-addon").eq(0).html(' ' + (i + 1) + ' '); 
      }); 
    } 
  } 
}); 
ログイン後にコピー

デモケース—InputGroupDemo
ディレクトリ構造は次のとおりです:


index.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
  <meta name="viewport" content="width=device-width, initial-scale=1"> 
  <title>输入框组</title> 
  <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css"> 
  <style> 
    /*.input-group-add .input-group { 
      margin: 10px 0; 
    }*/ 
  </style> 
 
  <!--<link href="assets/font-awesome/css/font-awesome.css" rel="stylesheet" />--> 
  <!--[if lt IE 9]> 
  <script src="js/html5shiv.js"></script> 
  <script src="js/respond.min.js"></script> 
  <![endif]--> 
</head> 
<body> 
  <div class="container"> 
    <div class="input-group-add"> 
      <!--<div class="input-group"> 
        <span class="input-group-addon"> 1 </span> 
        <!–<input type="text" class="form-control" aria-label="...">–> 
        <textarea class="form-control"></textarea> 
        <span class="input-group-addon"> 
          <button class="btn btn-default" type="button"> + </button> 
        </span> 
      </div>--> 
    </div> 
  </div> 
 
  <script src="js/jquery-1.11.1.min.js"></script> 
  <script src="js/bootstrap.min.js"></script> 
  <script src="inputGroup.js"></script> 
  <script> 
    $(function() { 
      $('.input-group-add').initInputGroup({ 
        'widget' : 'textarea', //输入框组中间的空间类型 
        /*'add' : '添加', 
        'del' : '删除'*/ 
      }); 
    }); 
  </script> 
</body> 
</html> 
ログイン後にコピー

入力ボックスグループの中央のコントロールに入力が必要な場合は、次のように設定できます:

$('.input-group-add').initInputGroup({ 
        'widget' : 'input', //输入框组中间的空间类型 
        /*'add' : '添加', 
        'del' : '删除'*/ 
      }); 
ログイン後にコピー

または、デフォルトの中央コントロールが入力されるため、設定しないでください。
中央のコントロールが入力された場合の効果は次のとおりです:

以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート