资讯专栏INFORMATION COLUMN

Jquery与Bootstrap实现后台管理页面增删改查功能

yankeys / 2406人阅读

摘要:使用与实现了一个比较简单但功能齐全的增删改查功能的后台管理页面,虽然只是一个页面,但麻雀虽小五脏俱全,常用的功能都用到了,本例用原生的与配合使用,不考虑的重构性及打包,该例子零耦合,开箱即用。相关文章实现双击内容变为可编辑状态

使用jquery与bootstrap实现了一个比较简单但功能齐全的增删改查功能的后台管理页面,虽然只是一个CRUD页面,但麻雀虽小五脏俱全,JS常用的功能都用到了,本例用原生的jquery与bootstrap配合使用,不考虑JS的重构性及打包,该例子零耦合,开箱即用。

先看Demo:

一、用到的Jquery功能

1、获取/赋值input输入值

$("#my_id").val();// 获取
$("#my_id").val(“user_id");// 赋值

2、获取/赋值textarea文本域输入值

$("#my_textarea").val();// 获取
$("#my_textarea").val("my_textarea");// 赋值

// 文本域显示默认值,这个和input不一样,不能通过value赋默认值

3、隐藏/显示输入框

$("#my_input").hide();
$("#my_input").show();

4、获取表单form输入的数据

$("#my_input").hide();
$("#my_input").show();

5、js相关方法

 < a href="javascript:history.back()">回退
  刷新
 
 

6、异步请求实例

// 1.简单的异步请求 $.post
  $.post("./express_statement.php",{act:"import_data", year:year,month:month}, function (data){
      $("#tip").html("恭喜您,处理完成!");
      console.log(data);
   }, "json");
             
// 2. 复杂一点的请求 $.ajax (该请求可以设置更多的参数,如超时时间)
$.ajax({
  url:url,
  type:"POST",
  data:{name:name},
  timeout:30000,
  dataType:"json",
  success:function(data){
    //var msgJson = eval(data); dataType为json,就不用转了
    if (msgJson.status == "0") {
        $("#infoRefund").attr("style", "display:block")
    } else {
        alert("查询错误,请稍后再试")
    }
  },
  error:function(){}
});

        
       

从以上我们可以看出,$.post$.ajax的一个简化。简化,所以就会省去很多参数。要用更多功能,就用$.ajax

如果ajax返回的为json 字符串,则要转为json对象:

 var obj = eval("("+data+")");
 if(obj.code > 0){

 }

7、dom自动加载
jquery中的$(function(){...})什么时候执行?

这个是在页面DOM文档加载完成后加载执行的,等效于$(document).ready(function(){...});
优于window.onload,后者必须等到页面内包括图片的所有元素加载完毕后才能执行。

如果你不想让它自动执行可以把这些放到一个函数中,想执行时调用就可以了

8、$.fn用法
在 jQuery 中,fn 其实就是 JavaScript 中 propotype 的一个别名,$ 是 jQuery 的别名,所以

$.fn.pluginName 等同于 jQuery.prototype.pluginName
$.fn.pluginName 表示创建一个 jQuery 的属性,通俗的说是写一个 jQuery 函数

pluginName 才是函数名
实例:

$.fn.setRedText = function() {
    return $(this).css("color", "red");
};
 
$("p").setRedText();

9、$.extend用法
Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。

Jquery的扩展方法原型是:   

extend(dest,src1,src2,src3...);

它的含义是将src1,src2,src3...合并到dest中,返回值为合并后的dest,由此可以看出该方法合并后,是修改了dest的结构的。如果想要得到合并的结果却又不想修改dest的结构,可以如下使用:

var newSrc=$.extend({},src1,src2,src3...) //也就是将"{}"作为dest参数。

这样就可以将src1,src2,src3...进行合并,然后将合并结果返回给newSrc了。如下例:

var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})

那么合并后的结果

result={name:"Jerry",age:21,sex:"Boy"}

也就是说后面的参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值。

二、示例代码

示例前端active_list.html代码:




    
    活动列表
    
    
    

    



活动列表

标题:
  默认
总数({total_count}
排序 显示标题 图片链接 标签 截止时间 状态 活动详情 奖项设置 简介 备注 操作
{order_num} {title}[{active_id}] {tag_name} {expire_time} 上架 下架 内容编辑  设置奖项 {remark}   
{page_str}       

动作处理页面active_action.php

 0 ? 1 : 0;


$.each遍历方法使用
  $("#b4").click(function(){
              //alert($("select option:selected").text());
            //必须 用这个 val()函数把每个值打印;
//alert($("select option:selected").val());    //会弹出 选项1   ???
            // 因为它取得不是文本框里的值 选项1^^,而是value的值选项1
        var $objs=$("select option:selected");

        /*    $.each($objs,function(){
                alert($(this).val());
            });*/
        
        /*    $.each($objs,function(i,n){
            //    alert(n.value);
                alert($(n).val());
            })*/
            
        /*    $objs.each(function(){
                window.alert($(this).val());
            })*/
            
            $objs.each(function(i,n){
                window.alert("ok"+$(n).val());
            })
            
            
      })
      


八、JS实现双击内容变为可编辑状态

在一些网站上我们经常看到交互性很强的功能。一些用户资料可以直接双击出现文本框,并在此输入新的资料即可修改,无需再按确定按钮等。。
我在网上查了很多资料,但都有一个小bug,就是当获取焦点后,光标的位置在文本框内容是开始处,这样编辑时还需要用户再重新选择一下光标位置,这样的交互感觉不好;后来查到新的资料解决了此问题,希望可以帮助到更多的人。

代码部分:

注意:设置选择文本的内容或设置光标位置




JS实现双击编辑可修改状态




    
你的用户名:
三人行
你的个性档
三人行,必有我师焉!

双击事件:ondblclick
替换div中的内容:

document.getElementById("spxx").innerHTML = res.content;  // document
$("#"+remark_id).html(remark);     // jquery

jQuery中没有innerText、innerHtml

发现如果我在div或者其他非表单的标签中赋值,原本用普通的js就直接document.getElementById("id").innerHtml(或者其他几个)就可以了。
但是在jQuery中不行
例如:

document.getElementById("t").innerHTML="ffffdffffdffffddd";     -----------A
$("#t").innerHTML="sdsds";      -----------B
 
document.getElementById("t") 获得的是dom对象,所有对象都有innerHTML
$("#t")获得的是jquery对象,无innerHTML
 
所以我们可以这样使用:
$("#t").html("sdsds");
or
$("#t")[0].innerHTML="sdsds";

如果是innerText,也类似就是把html改成Text即可。

相关文章:
JS实现双击内容变为可编辑状态

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86585.html

相关文章

  • 论初级PHPer如何点亮技能树

    摘要:此篇文章并未如何教你怎么面试的时候吹逼,而是给一点点建议,如何更聪明地达到目的。据不完全统计,基本都是做管理后台改。不要太沉溺和纠结于技术,把重心移到业务能力上,踏踏实实做事。 前言   对于很多刚毕业或者大四的同学,都会有个困惑,我如何学PHP,为什么知识会那么杂,然后实习中公司大概需要哪些要求。此篇文章并未如何教你怎么面试的时候吹逼,而是给一点点建议,如何更聪明地达到目的。 实习可...

    eternalshallow 评论0 收藏0
  • Jquery + dataTable + Bootstrap + 完整逻辑实现表格的删改

    摘要:最近在做毕设,同学在做前端页面的时候使用到和这些控件,然后自己又在刷题的时候遇到一个这个的实现,于是就自己去官网文档上学习了一下,尝试实现这个官方文档代码代码效果如下图示顶部结构页面上的三个,增删改新增修改删除这里的框的 最近在做毕设,同学在做前端页面的时候使用到JQuery、DataTable和Bootstrap这些控件,然后自己又在刷题的时候遇到一个这个demo的实现,于是就自己去...

    oneasp 评论0 收藏0
  • 13 个快速构建 Laravel 后台的扩展包

    摘要:值得一提的是扩展包不免费用于商业用途,作者用一种人类友好的方式说你使用这个扩展包就是应该去挣钱的,而不是免费的去工作这个扩展包收费美元。除了这些,还有五个没有全面的审查的扩展包。最后,还有三个优质的包选择于。 showImg(https://segmentfault.com/img/remote/1460000012312105?w=2200&h=1125); 开发者们都是懒惰的,不,...

    MiracleWong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<