首页 > 其他分享 >关于jQuery的attr给input赋值遇到遇到的问题

关于jQuery的attr给input赋值遇到遇到的问题

时间:2023-08-05 23:23:03浏览次数:32  
标签:jQuery attr 遇到 选择项 jq value check checks select

前段时间因为公司有个下拉框的需求(固定前几列不动,后面几个可以话滑动的多选下拉框)由于在网上找了几次插件发现都不满足,于是决定开始手写一个下拉多选

 

 

 html部分:

1             <div class="input-group">
2                         <div style="position:relative;">
3                             <input type="text" id="test_div" />
4                         </div>
5                 </div>

js部分

复制代码
 1 (function () {
 2         $.fn.extend({
 3             checks_select: function (options) {
 4                 jq_checks_select = null;
 5                 $(this).click(function (e) {
 6                     jq_check = $(this);
 7                     if (jq_checks_select == null) {
 8                         jq_checks_select = $("<div class='checks_div_select'></div>").insertAfter(jq_check);
 9                         jq_checks_top = $("<div class='checks_div_top'></div>").appendTo(jq_checks_select)
10                         jq_checks_down = $("<div class='checks_div_down'></div>").appendTo(jq_checks_select)
11                         $.each(options, function (i, n) {
12                             //固定前面三个
13                             if(Number(i)<4){
14                                 check_div = $("<div><input type='checkbox' value='" + n + "'>" + n + "</div>").appendTo(jq_checks_top)
15                             }else{
16                                 check_div = $("<div><input type='checkbox' value='" + n + "'>" + n + "</div>").appendTo(jq_checks_down) 
17                             }
18                             // check_div = $("<div><input type='checkbox' value='" + n + "'>" + n + "</div>").appendTo(jq_checks_select);
19                             check_box = check_div.children();
20                             check_box.click(function (e) {
21                                 //jq_check.attr("value",$(this).attr("value") );
22 
23                                 temp = "";
24                                 $("input:checked").each(function (i) {
25                                     if (i == 0) {
26                                         temp = $(this).attr("value");
27                                     } else {
28                                         temp += "、" + $(this).attr("value");
29                                     }
30                                 });
31                                 jq_check.attr("value", temp);
32                                 e.stopPropagation();
33                             });
34                         });
35                     } else {
36                         jq_checks_select.toggle();
37 
38                     }
39                     e.stopPropagation();
40                 });
41                 $(document).click(function () {
42                     jq_checks_select.hide();
43                 });
44             }
45         })
46 
47     })(jQuery);
48 
49     $(document).ready(function () {
50         var options = {
51             1: "第一个选择项",
52             2: "第二个选择项",
53             3: "第三个选择项",
54             4: "第四个选择项",
55             5: "第五个选择项",
56             6: "第六个选择项",
57             7: "第三个选择项",
58             8: "第四个选择项",
59             9: "第五个选择项",
60             10: "第六个选择项"
61         };
62         $("#test_div").checks_select(options);
63     });
复制代码

其实代码很简单 我写的也不是很好,在这里面有个问题就是第31行代码,我通过    jq_check.attr("value", temp)赋值的时候遇到了问题  

在我的demo中通过attr去改变输入框的value时 页面的html结构上的value改变了,然后页面上实际渲染的效果也是我选择的值 当我将demo引入到项目中时,发现html结构的value值改变了,但是页面上一直没有渲染

也不知道具体原因

后来发现 有个方法同样可以实现给input动态赋值

?
1 $('#test_dev').prop('value', temp);

jquery的prop方法完美的解决了我这个问题。既可以动态赋值又能正常的清空值和页面上的显示的问题。  

 

 

出处:https://www.cnblogs.com/Little-fat-boy/p/15498857.html

标签:jQuery,attr,遇到,选择项,jq,value,check,checks,select
From: https://www.cnblogs.com/mq0036/p/17608834.html

相关文章

  • MySQL Server 5.5的安装及遇到问题记录
    一、安装安装没有什么说的,不会看图(版本,我选择自定义——Custom,供参考)                        --------------------------------------------------------------------------二、问题记录:安装后遇到的问题 1.安装mysql......
  • web前端技能方法总结(css、js、jquery、html)(3)
    HTML(HyperTextMarkupLanguage)就是超文本标记语言。"超文本"就是表示页面内可以包含非文字元素,如:图片、链接、音乐等等。它是一种建立网页文件的语言,通过标记式的指令(Tag),将影像、声音、图片、文字等链接显示出来。这种标记性语言是因特网上网页的主要语言。HTML网页文件可以使用......
  • 记一次jenkins+maven+nexus3打包中遇到的问题
    过程:开发加了个新模块使用jenkins打包,报错如下: 总结就是maven-assembly-plugin模块的jar包没拉下来。去maven服务器查看了repo包情况,/data/maven/repo/org/apache/maven/plugins/maven-assembly-plugin/3.4.2发现果然没有对应jar包等,说明没拉下来。开发说明明把包上传到nexus......
  • 请问您在处理故障排除方面是否有经验?如果在Linux服务器上遇到问题,您会采取哪些步骤来
    一、服务器无法启动当你无法通过远程终端或物理控制台访问服务器时,可能是由于服务器无法启动造成的。这种情况下,你可以尝试以下几种方法:检查电源连接和供电情况,确保服务器有足够的电力供应。检查服务器硬件组件,如内存条和硬盘,确保它们没有松动或损坏。查看服务器启动日志,以......
  • 2014年工作中遇到的20个问题:141-160
    141.日期转换。//输入的时间为毫秒的准确时间//firstTime:1417139867916,lastTime:1419731867916publicstaticintgetDayBetweenTwoDate(longfirstTime,longlastTime){//当天的0点:1417104000000} 问题原因:firstCalendaStartTime-lastCalendaStartTime......
  • jquery方法封装
     /*comment.js*/;(function($){ //消息显示$.message=function(content){$('#message').attr('data-content',content);$('#message').popover('show');setTimeout(function(){$(&......
  • 前些年使用jQuery笔记代码
    //jqueryformjsonfunctionformJson(id){vararr=$("#"+id).serializeArray();//form表单序列化varjsonStr="";jsonStr+='{';for(vari=0;i<arr.length;i++){jsonStr+='"'......
  • Python爬虫遇到重定向问题解决办法汇总
    在进行Python爬虫任务时,遇到重定向问题是常见的问题之一。重定向是指在发送请求时,服务器会返回一个新的URL,将请求重新定向到该URL。为了帮助您解决这个问题,本文将提供一些实用的解决办法,并给出相关的代码示例,希望能对您的爬虫任务有所帮助。了解重定向问题重定向问题通常是由于网......
  • jQuery 自学笔记—10 常见特效 (终章)
    隐藏、显示、切换,滑动,淡入淡出,以及动画效果演示点击这里,隐藏/显示面板一寸光阴一寸金,因此,我们为您提供快捷易懂的学习内容。在这里,您可以通过一种易懂的便利的模式获得您需要的任何知识。实例jQueryhide()演示一个简单的jQueryhide()方法。jQueryhid......
  • 搭建zk,kafka环境所遇到的问题
    env:jdk1.8centos7.1zookeeper3.4.6选这版体是因为对kafka做了很多优化,修改 Q1:zk启动不了A1: ./zkServer.sh start-foreground   发现少了myid 解决 :在zk数据文件存放目录下(见$ZK/conf/zoo.cfg,dataDir属性),创建myid文件并写入一个数字用来标识本节点(类似这个节点的......