jquery autocomplete 怎样实现动态绑定

该系统提供了一种录入药品信息的方式,包括药品名称、生产批号、用法用量等详细信息,并支持通过输入药品名称、拼音或首字母来搜索药品。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




<fieldset>
<h4>怀疑药品</h4>
<!--  药品反应  -->
<div id="huaiyiyaopindiv">
<!-- Select Basic -->
<div class="control-group">
  <label class="control-label" for="hz_huaiyiyaopin">药品名称:</label>
  <div class="controls">


<input class="getmedicine" id="hz_huaiyiyaopin" type="text" value="请输入中文或拼音" onKeyUp="input_keyup(this);" onClick="append_city(this);" onBlur="input_blur(this)" onFocus="if(value=='请输入中文或拼音'){value='';style.color='#606060';}" />
<input class="text"  name="hz_huaiyiyaopin[]" value="" style="display:">




    <!-- <select id="hz_huaiyiyaopin" name="hz_huaiyiyaopin[]" class="input-xlarge">
        <volist name="medicine" id='v'>
            <option value="{$v.m_id}">{$v.m_name}</option>
        </volist>
    </select>-->
  </div>
</div>

<!-- Text input-->
<div class="control-group">
  <label class="control-label" for="hz_hyyaopinpihao">药品生产批号:</label>
  <div class="controls">
    <input id="hz_hyyaopinpihao" name="hz_hyyaopinpihao[]" placeholder="药品生产批号" class="input-xlarge" required="required" type="text">
    
  </div>
</div>

<!-- Text input-->
<div class="control-group">
  <label class="control-label" for="hz_hyyaopinyongfaliang">药品用法用量:</label>
  <div class="controls">
    <input id="hz_hyyaopinyongfaliang" name="hz_hyyaopinyongfaliang_text[]" placeholder="药品用法用量" class="input-xlarge" required="required" type="text">
    
  </div>
</div>

<!-- Text input-->
<div class="control-group">
  <label class="control-label" for="hz_hyyyqzsj">药品用药起止时间:</label>
  <div class="controls">
    <input id="hz_hyyyqzsj" name="hz_hyyyqzsj_text[]" placeholder="药品用药起止时间" class="input-xlarge" required="required" type="text">
    
  </div>
</div>

<!-- Text input-->
<div class="control-group">
  <label class="control-label" for="hz_hyyyyuanyin">用药原因:</label>
  <div class="controls">
    <input id="hz_hyyyyuanyin" name="hz_hyyyyuanyin_text[]" placeholder="用药原因" class="input-xlarge" required="" type="text">
    
  </div>
</div><hr></hr>
</div>

<div id="aaaaaaaaaaaaaaa"></div>
<h5 align="right"><a href="javascript:void(0);" id="huaiyiyaopinadd">增加一项</a></h5>
<!-- 药品反应结束-->
</fieldset>





        
            
<!--下拉-->
<div class="pop search-citys-pop click" style="display:none;z-index:9999" id="cityarea">
    <a href="javascript:void(0)" class="pop-close" ></a>
    <div class="search-citys-tit click">药品名称(可直接输入中文名/拼音/首字母,因某些生僻字无法获取拼音、首字母,请输入首个汉字后选择)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>直接输入的药品没有药品基本信息,请先将药品录入药品管理。</div>
    <div class="search-citys-tt click">
        <a class="current click" onClick="tabCutover(this,'s-citys1')" href="javascript:void(0)">ABCDEFG<span></span></a>
        <a class="click" onClick="tabCutover(this,'s-citys2')" href="javascript:void(0)">HIJKL<span></span></a>
        <a class="click" onClick="tabCutover(this,'s-citys3')" href="javascript:void(0)">MNOPQRST<span></span></a>
        <a class="click" onClick="tabCutover(this,'s-citys4')" href="javascript:void(0)">UVWXYZ<span></span></a>
    </div>
    <div class="search-citys-list click" id="citylist"></div>
</div>
<link href="__PUBLIC__/css/other13.css" rel="stylesheet" type="text/css" />
<script src="__PUBLIC__/js/medicine.js"  type="text/javascript"></script>
<script src="__PUBLIC__/js/jquery.autocomplete.js" type="text/javascript"></script>
<script>
var inputid=1;
$(function(){
    $("#baogaotype-1").change(function(){
        if(!!$("#baogaotype-1").attr("checked")){
            $("#baogaotype-2").attr("disabled","disabled");
        }else{
            $("#baogaotype-2").attr("disabled",false);
        }
    });
    
    $("#baogaotype-2").change(function(){
        if(!!$("#baogaotype-2").attr("checked")){
            $("#baogaotype-1").attr("disabled","disabled");
        }else{
            $("#baogaotype-1").attr("disabled",false);
        }
    });
    
    
    $("#huaiyiyaopinadd").click(function(){
        var new_div=$('#huaiyiyaopindiv').clone();
        //new_div.attr("class")="newclass";
        new_div.find('div').find('div').find('#hz_huaiyiyaopin').attr('id','hz_huaiyiyaopin'+inputid);
        new_div.find('input').val('');
        //alert('#hz_huaiyiyaopin'+inputid);
        //绑定克隆以后的autocomplete事件
        new_div.find('div').find('div').find('#hz_huaiyiyaopin'+inputid).autocomplete(cities, {
            max: 15, //列表里的条目数
            minChars: 0, //自动完成激活之前填入的最小字符
            width: 385, //提示的宽度,溢出隐藏
            scrollHeight: 300, //提示的高度,溢出显示滚动条
            matchContains: true, //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
            autoFill: false, //自动填充
            minChars:1,
            formatItem: function(row, i, max) {/*此处包括以下是药品js里面的json数据*/
                return row.name + '|'+row.pinyin+'|'+row.m_id+'|';
            },
            formatMatch: function(row, i, max) {
                return row.match;
            },
            formatResult: function(row) {
                return row.m_id;
            },resultsClass:'search-text'
        }).result(function(event, row, formatted) {
            local.val(row.m_id);
            alert(row.m_id)
            $('#pop_cities').show();
        });
        
        
        inputid++;
        
        
        $(this).parent().parent().parent().find("#aaaaaaaaaaaaaaa").append(new_div);

    });
    
    
    
    $("#bingyongyaopinadd").click(function(){
        var new_div=$('#bingyongyaopindiv').clone();
        new_div.find('input').val('');
        $(this).parent().parent().parent().find("#bbbbbbbbbbb").append(new_div);
    });
    
    
    
    
    $("#report_form").validate({
        // Do not change code below
        errorPlacement : function(error, element) {
            //error.insertAfter(element.parent());
            if (element.is(':radio') || element.is(':checkbox')) { //如果是radio或checkbox
                error.appendTo( element.parent().parent() );
            } else {
                error.insertAfter(element);
            }
        },
        submitHandler: function(form){
            $("#submitbut").attr("disabled", true);
            $.ajax({
                url : "{:U('/Report/save')}",
                type : "post",
                dataType : "json",
                data: $("#report_form").serialize(),
                success : function(result) {
                    if(result.status==true) {
                        alert(result.data);
                        location.href='{:U('/Report/index')}';
                    } else if(result.status==false){
                        alert(result.data);
                        $("#submitbut").attr("disabled", false);
                    }
                }
            });
        }
    });
    
    

});



/**
 * 药品选择js
 */
 
 var local='';
 function append_city(e){
     local=$(e).next();
        x =$(e).offset().top;
        y =$(e).offset().left;
        //alert(x+'-'+y);
        inputlocation = e;
        $('#cityarea').css("position","fixed");
        $('#cityarea').css("left",x);
        $('#cityarea').css("left",y);
        $('#cityarea').show();
        if($("#citylist").text()==""){
            $("#citylist").append(cityarea);
        }
    }

var inputlocation;
var cityChange= eval(cityChange);
$(function(){
 $('#index_province').change(function(){alert('index_province');
    for(var i in cityChange){
        if(i==this.value){
           var index_city_obj = $('#index_city')[0];
           index_city_obj.innerHTML='';
           var obj = cityChange[i];
           for(var k in obj){
              if(obj[k].name){             
                  index_city_obj.options[index_city_obj.options.length] = new Option( obj[k].name,obj[k].pinyin);
              }
           }
           break;
        }
    }
 });
})

//$(".getmedicine").live("keydown",function(){
    $('.getmedicine').autocomplete(cities, {
        max: 15, //列表里的条目数
        minChars: 0, //自动完成激活之前填入的最小字符
        width: 385, //提示的宽度,溢出隐藏
        scrollHeight: 300, //提示的高度,溢出显示滚动条
        matchContains: true, //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
        autoFill: false, //自动填充
        minChars:1,
        formatItem: function(row, i, max) {/*此处包括以下是药品js里面的json数据*/
            return row.name + '|'+row.pinyin+'|'+row.m_id+'|';
        },
        formatMatch: function(row, i, max) {
            return row.match;
        },
        formatResult: function(row) {
            return row.m_id;
        },resultsClass:'search-text'
    }).result(function(event, row, formatted) {
        local.val(row.m_id);
        alert(row.m_id)
        $('#pop_cities').show();
    });
    

//})

    /*$('.getmedicine').autocomplete(cities, {
        max: 15, //列表里的条目数
        minChars: 0, //自动完成激活之前填入的最小字符
        width: 385, //提示的宽度,溢出隐藏
        scrollHeight: 300, //提示的高度,溢出显示滚动条
        matchContains: true, //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
        autoFill: false, //自动填充
        minChars:1,
        formatItem: function(row, i, max) {/*此处包括以下是药品js里面的json数据* /
            return row.name + '|'+row.pinyin+'|'+row.m_id+'|';
        },
        formatMatch: function(row, i, max) {
            return row.match;
        },
        formatResult: function(row) {
            return row.m_id;
        },resultsClass:'search-text'
    }).result(function(event, row, formatted) {
        local.val(row.m_id);
        alert(row.m_id)
        $('#pop_cities').show();
    });*/

    
    
    
    




$(document).ready(function(){
    $(document).bind('click', hide_div);
});
    
    

function hide_div(e){
    var biaoqian = "click";
    var classname= $(e.target)[0].className;
    if(classname.indexOf('click')>'-1' ||$(e.target)[0].id=='hz_huaiyiyaopin')
        return ;
    if($(this).val()==''){
        $(this).val('请输入中文或拼音');
        $(this).css('color','#B7B7B7');
    }
    $("#cityarea").hide();
}

//直接输入地址框的onblur事件(离开)
function input_blur(a){
    var value = $(a).val();
    var all_city_val = $(".ac_over").text();
    
    //此处应该每次都清空,不然还会连接上次的内容
    
    if(all_city_val && all_city_val!=""){
        var str = all_city_val.substr(0,(all_city_val.length-1));
        strs=str.split("|");
        local.val(strs[2]);
        $(a).val(strs[0]);
        $(".search-text").hide();
        all_city_val='';
        value='';
    }else if($.trim(value)==''&& $('#cityarea').css('display')=='none'){
        $(a).val('请输入中文或拼音');
        $(a).css("color","#B7B7B7");
    }
}
    
//直接输入地址框的onkeyup事件(键盘松开)
function input_keyup(e){
    var value = $(e).val();
    //alert($(e).attr('id'))
    if(local.val()!=value || local.val()==''){
        $('#cityarea').hide();
        value='';
    }else if(value==local.val()){
        $('#cityarea').hide();
    }
}

function check_input(){
    var value = $('#hz_huaiyiyaopin').val();
    if(value==local.val() && local.val()!=""){
        return true;
    }
    return false;
}

/**
 * 字母页面内链
 *
 */
function letter_scroll(letter){
     var obj = $("#c_"+letter);
     $('html,body').animate({scrollTop: obj.offset().top}, 500);
}

/**
 * 用户点击名字后,id填入input框
 *
 */
function change_city_val(city, obj_id){
    //alert(local.attr('value'));
    local.val(obj_id);
    $(inputlocation).css({ color: "#606060"});
    $(inputlocation).val(city);
    $('#cityarea').hide();
}
function tabCutover(c,d){
    $(c).parent().attr("class");
    $(c).parent().children().removeClass("current");
    $(c).addClass("current");
    $("."+d).parent().children().hide();$("."+d).show();
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值