zoukankan      html  css  js  c++  java
  • angularJS 可编辑下拉选项框

    功能介绍:

      该组件将文本框和下拉框的组合,当你点击最右边的下拉按钮,实现下拉框选择的功能;当你选中文本框,实现文本框输入的功能。将文本框和下拉框设置name属性一样他自动会把对应下拉框的值传入后台,而文本框的值不传,当你做文本框使用,它会把文本框的值传入后台而下拉框的值不传。


    可编辑下拉选项框

    1.html代码

     1 <!DOCTYPE html>
     2 <html ng-app="myapp">
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>可编辑下拉选项框</title>
     6         <script src="../../js/angular.min.js" type="text/javascript" charset="utf-8"></script>
     7         <script src="../js/edit_sel.js" type="text/javascript" charset="utf-8"></script>
     8         <link rel="stylesheet" type="text/css" href="edit_sel.css"/>
     9     </head>
    10     
    11     <body ng-controller="mycon">
    12         <select class="sel" name="search" ng-focus="foChange(flt1)" ng-model="flt1" ng-change="ftl1Change(flt1)" ng-focus="foc">
    13             <option  value=""></option>
    14             <option  value="ANY">ANY</option>
    15             <option  value="1" style="display: none;">1</option>
    16         </select>*
    17         <input class="inp" maxlength="4" type="text" required="required" 
    18             ng-blur="chkNumber(fltNo1)" ng-model="fltNo1" ng-change="fltNo1Change(fltNo1)" />
    19             <font color="red">&nbsp;*</font>
    20             <span ng-model="tips">&nbsp;{{tips}}</span>
    21     </body>
    22 </html>

    2.css样式引入

     1 .sel{
     2     width: 1.5%;
     3     position: relative;
     4     left: 11.5%;
     5     height:21px;
     6 }
     7 
     8 .inp{
     9     width: 10%;
    10     position: relative;
    11     left: -20px;
    12 }

    3.可编辑文本框下拉选项的js代码实现

    angular.module("myapp",[]).controller("mycon",function($scope){
        var vm = $scope;
        // 下拉框change事件
        $scope.ftl1Change= function(flt1){
    //        console.log(flt1);
            if(vm.flt1===""||vm.flt1==null){
                vm.fltNo1="";
            }else{
                vm.fltNo1="ANY";
            }
            
        };
        
        // 文本框输入 change事件
        $scope.fltNo1Change = function(fltNo1){
            vm.flt1 = fltNo1;
        };
        
        // 下拉框focus事件
        vm.foChange = function(flt1){
            vm.flt1 = "1";
        };
        
        // 校验是是否输入数据合法
        $scope.chkNumber=function(eleText){
             var value =eleText;
                  for(var i=0;i<value.length;i++)  
                  {
                         if(value.charAt(i)>"9"|| value.charAt(i)<"0")
                         {
                                vm.tips="输入非法字符!";
                                eleText.focus();
                                break;
                         }
                  }
        };
    });
    
    /*
    // html 原生的onblur事件校验
       <input type="text" id="d1" onblur=" chkNumber(this)"/>     
     function chkNumber(eleText)
     
           {
                  var value =eleText.value;
                  var len =value.length;
                  for(var i=0;i<len;i++) 
                  {
                         if(value.charAt(i)>"9"|| value.charAt(i)<"0")
                         {
                                alert("含有非数字字符");
                                eleText.focus();
                                break;
                         }
                  }
           }
           
    */

     使用原生jquery实现 可编辑下拉选项框

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>可编辑下拉选项框</title>
    		<script src="../../js/jquery-3.2.1.js" type="text/javascript" charset="utf-8"></script>
    	</head>
    	<style type="text/css">
    		select{position: relative;left: -0.5em;height: 1.6em;border: 2px solid darkgray;}
    		input{border: 2px solid darkgray;}
    	</style>
    	<script type="text/javascript">
    		$(document).ready(function(){
    			// 获得鼠标的事件:改变颜色
    			$("#sel-age").mouseover(function(){
    				$(this).css("background-color","palegreen");
    			});
    			// 鼠标离开标签的事件:改变颜色
    			$("#sel-age").mouseout(function(){
    				$(this).css("background-color","");
    			});
    			// 输入框获取下拉框选中的值
    			$("#sel-age").change(function(){
    				var sval = $(this).val();
    				if(sval===""||sval===null||sval===undefined){
    					$("#age").val("");
    				}else{
    					$("#age").val(sval);
    				}
    			});
    			// 重要的一个步骤:设置select标签focus事件--获得焦点的时候,将下拉框默认选择一个空的选项
    			$("#sel-age").focus(function(){
    				//$("option[value='a']").prop('selected','true'); 
    				$("#sel-age").val('a');
    			});
    		});
    	</script>
    	<body>
    		<div>
    			<label for="">min age:</label>
    			<input type="text" id="age" maxlength="3" pattern="/^[0-9]{0,3}$/" />
    			<select name="age" id="sel-age" >
    				<option value=""></option>
    				<option value="ANY">ANY</option>
    				<option value="a" style="display: none;"></option>
    			</select>
    		</div>
    	</body>
    </html>
    
  • 相关阅读:
    Git:本地文件到远程仓库
    logstash.conf 配置:input kafka,filter,output elasticsearch/mysql
    PowerDesigner根据Excel设计数据表结构 Excel表结构导入PowerDesigner
    VBScript PowerDesigner使用手册
    PowerDesigner导出数据表结构到Excel 一个表一个Sheet 带链接目录
    PowerDesigner导出数据表结构到Excel 所有表结构在同一个Sheet中
    Windows下如何用virtualenv创建虚拟环境
    解决ValueError: day is out of range for month的问题
    正则表达式
    移动端库和框架
  • 原文地址:https://www.cnblogs.com/blogslee/p/7267834.html
Copyright © 2011-2022 走看看