button的类型?为什么button 会自动提交表单?

也不要去记 到底是ff, 还是chrom, 还是ie, 反正统一的记住就好了:
button的类型, 有三种: button, submit, reset
默认的就是 submit, 所以, 如果不想 button 在点击时就默认的提交表单的话, 就显式的指定 button的类型 为 : type="button"就好了!

=======================================================

  • 为了避免file_put_contents在写入文件的时候, 由于权限的问题而失败, 那个要写入的文件, 不要自己去创建, 由浏览器后台代码去创建, 因为这样创建的文件的所有者就是 apache, 而不是current_user, 这样就不会存在权限的问题了
  • 元素和元素的伪类, 是两个不同的"标签", 它们的css类不会互相起作用, 比如: 一个btn-link类,和它的:hover伪类, 它们的css并不是串用的, 对.btn-link设置了 text-decoration:none, 并不能保证 按钮在hover悬浮时不出现下划线, 所以, 要想让他在任何时候都不出现下划线, 要设置成: .btn-link, .btn-link:hover{ text-decoration: none;}

按钮/超链接的四种状态到底是什么时候?

button, a, 没有任何操作的时候, 就是普通状态;
button:hover 就是鼠标放在上面时候的状态;
button:active, 活动状态,就是鼠标在上面按下, 但是没有放开的时候, 这个状态;
button:focus, 焦点状态, 就是鼠标在上面按下, 然后放开后的状态.
也就是说, 这四个状态的先后顺序总是这样的: common普通状态 --> hover -> active ->focus 状态, 由此根据你的需要进行css的设置.

===========================================

禁用状态和点击事件的未必然性?

  • 按钮或链接的禁用状态和它的点击事件是没有必然性的: 禁用状态是通过 .disabled类实现的, 而不会影响它的点击事件的,也就是说, 即使一个按钮是disabled的外观,但他的点击事件仍然是有效的, 所以对按钮的点击事件不能是以为它禁用了, 就不管了.
  • 如何移除按钮或元素的点击事件: 要显式的移除/或禁用按钮的点击事件: 根据按钮的点击事件规定的类型/方式不同, 禁用有两种: 一种是在属性 onclick中规定的, 就通过: $('somebutton').removeAttr('click') 来实现, 如果是在js中通过绑定click事件方式的, 就用 $('somebutton').unbind('click')来实现
  • 如何在js中使用变量?
    由后台页面传递过来的变量, 前端的html页面和js中都可以使用, 使用方法都是一样的: 通过{$some-var}, 但是html中可以直接输出 js中由于是"直接字面量", 会被js作为一个变量看待,所以,变量值其实是一个字符串, 所以, 在js中, 通常使用后台变量的时候都要给其加双引号.表示字面量值是一个字符串!

===================================================================

js的执行次序? 这个很重要, 清楚的认识到这一点,对有些复杂/问题代码的执行过程, 执行结果都会有清醒的认识

  1. 在js中, 所有的js代码都在页面加载时,就执行! 而且 除非是定时器代码外, 所有的代码 都只执行一次!!
  2. script, $(function(){....}); 的代码
    变量的定义 var some_var= '123' 在js加载时, 只执行一次,
    函数的定义 function some_func(){...} 也是在js加载时只执行一次 所有的字符序列,加引号都是都是字符串, 如果不加引号都认为是 变量名, 包括变量名和函数名.
  • 事件的绑定, $('some_elem').click(); 也是在加载时, 只注册一次. 事件的绑定, 就是注册一个事件侦听器, 有点类似定时器(会反复执行),但是这个事件的侦听是由操作系统来完成的,这个是跟 侦听器的区别, 注意: 事件侦听/事件绑定, 只是一个注册过程, 只要侦听之后, js代码就退出了, 这个事件侦听的工作/任务就交给 操作系统了, 所以, 异步事件的函数代码, 是不会被阻赛的!

  • if条件块的执行,是在满足条件时, 只执行一次 ! 如果if条件块中有事件绑定, 那么也只是在 条件成立时, 才注册事件侦听,否则,这个事件侦听是不会绑定和注册的. 最重要的是, 如果页面在第一次载入就执行时, if条件为false(它不会执行), 那么即使后面在执行其他代码(包括异步函数执行)时, 导致if条件为真时, 这个if代码块也不会重新来执行!当然在if条件块下注册的事件也不会发生.

  • 如果有异步执行块时, 在异步执行块之前, 其下面的代码(非异步块里面的代码)就已经执行了, 所以会导致得不到异步里面的执行结果

  • 反之, 如果要让某个 代码块(比如if条件块) 能够被反复执行, 即 不只是在js 加载时 执行一次, 就要使用 定时器 才能实现! 使用定时器, 可以让js在规定时间间隔反复执行某段代码!

  1. 定时器, 是一个变量, 由 setTimeout,或 setInterval函数赋值. 分倒计时定时器, 和反复执行定时器.
    倒计时定时器由setTimeout定义, 反复定时器 setInterval定义, 定时器的名字将被 clearTimeout(st) 或clearInterval(st)所使用
    定时器的执行函数指定, 可以用函数名, 也可以用字符串, 比如
    var st1 = setTimeout('hello()',100); var st2=setTimeout(hello, 200); var st3 = setInterval(hello, 100);

ajax的成功和失败与返回数据的success/fail的区别?

  • ajax的成功和失败, 是指ajax动作本身是否成功,比如传递的ajax页面不正确, 或ajax页面根本不存在; 或者网络不通, 那么会导致ajax的失败
  • 而ajax的返回值的success和fail是指, 在ajax动作本身成功的情况下, 你的后台页面返回值的差别, 比如数据查询等, 返回值不一定是success, fail, 也可以是其他任何值的.

html设置等待几秒后, 刷新一次页面的方法

有三种: window.location.reload(); window.location.replace('另一个页面'); meta http-equiv="refresh" content="5"
equiv 等于 e'quivalent, 等价物, http-equiv 就是 文件头, 相当于 http协议的意思
js等待几秒, 用 setTimeout(function(){ //匿名函数...}, 毫秒数比如3000表示3秒);
即:

setTimeout(function(){
 location.reload();
}, 3000);

alert对话框的点击触发事件如何写?

在原生的alert方法, 或 很多框架的 alert方法(对原生的alert方法的包装) 中, 都带 点击 "确定"按钮时的 回调函数:
比如:

 某些框架的:  $.alerts.alert('内容', '标题', '点击按钮上的文字', function(){alert('jquery alerts')});

 if(rt=='sucend'){
	$.messager.alert('提示','操作成功','info', function(){
	  location.reload();  /// 这个就是点击 alert提示框确定按钮时的触发回调方法
	});

在tp进行数据库的操作时, 对数据表的增删改查操作,一定要进行 if检查, 用die进行检查和调试, 这个是非常重要和必要的, 对调试 开发代码的错误和 运行时的各种错误有非常明显和方便的作用, 对某些意想不到的错误的排查非常有用.

原文地址:https://www.cnblogs.com/bkylee/p/13751181.html