表单提交前验证

目的:

表单提交前,对表单内容先做检查处理,若不符合要求,则禁止表单提交并做相应提示。

实现:

方式一,form标签中使用onsubmit=”return chk_form();”

方式二,提交按钮使用onclick=”return chk_form();”

方式三,把提交按钮改成普通按钮,对该按钮绑定js事件,使用$(‘#form’).submit()

注意:

以上提到的检查函数chk_form(),不能写在jquery的 $(function(){...}); 中,否则可能不会执行,可以单独写在一个 <script>...</script> 中

微信页面加载css资源失败

一个普通的web页面,PC访问正常,微信浏览器访问时,偶尔出现加载css文件404错误(可css文件是可以正常访问的,且此现象多刷新几次页面可能就正常了)

可能有效的解决方式:(至少对我来说有效)

加载CSS样式文件时,尽量放在head标签中,尽量在加载js文件前加载css文件

自定义DWZ框架中的刷新

使用框架:

DWZ框架,

问题:

因时间紧,来不急认真研究框架中的功能实现方式,所以在本应不包含JS代码的模板视图页面中添加自己的JS内容,自定义AJAX形式的JS功能,如自定义级联下拉框,自定义表单提交等。但因为跳过了DWZ自定义的实现方式,导致表单提交后,原TAB标签页的内容无法自动刷新。如下图图1中标记4处的表单提交后,标记3处的标签页内容没有自动刷新。图片1

图1

解决方式:

直接调用DWZ的JS文件中的页面刷新功能。

  • navTab.reloadFlag(“TAB_NAME”);

其中的“TAB_NAME”替换为要刷新的TAB页面标题,如图1中标记为1处的“Param”(即标记3处的“参数设置”标签页,亦即标记2处的“参数设置”菜单项)。

 

附:

  • $.pdialog.closeCurrent();  —— 关闭当前活动层。
  • $.pdialog.reload(url,data,dlid) —— 刷新dlid指定的dialog,url:刷新时可重新指定加载数据的url, data:为加载数据时所需的参数。例如,图2

图2

图3

图3

触发图2中的“提交”按钮时,使用自定义的AJAX形式提交表单,并在回调函数中调用

则,链接为”__URL__/index”中的内容被加载到“新增”dialog中了,如图3所示。下图图4是“提交”按钮的自定义JS代码。图4

 

图4

深入理解Javascript之this关键字

Javascript是一种很灵活的语言, 而This关键字又是灵活中的灵活, 但是因为它的灵活, 也注定了它的难用.

以前我用this的时候, 都会觉得不踏实, 老是担心它不知道怎么地就会指到另外的什么地方.

其实, 这都是因为, 我们对它的不了解.

刚好最近再给百度学院做《Javascript高级-作用域/原型链》的ppt, 而swit1983网友也刚好提这个问题, 索性就把这部分内容独立总结出来, 与大家分享. 继续阅读“深入理解Javascript之this关键字”

属性节点处理

按照HTML DOM规范处理属性

.prop()方法用来按照HTML DOM规范获取或设置匹配元素的一个属性的值。该方法与.attr()方法的功能略有些不同。

语法格式如下:

参数propertyName指定要获取或设置的属性名。

参数value指定要设置的属性的值。

参数map指定一个Object对象,其中定义了很多属性及其对应的属性值,这些将被设置到元素作为元素的属性。

参数function(index, oldPropertyValue)指定一个函数,该函数的返回值将用作属性值来设置,函数中的关键字this是当前的元素,该属性在元素属性集合中的索引位置和旧的属性值为参数。

.prop()方法仅仅获取第一个匹配元素的属性值。要单独获取每个匹配元素的属性值,可以使用.each()方法或.map()方法做一个循环。

如果元素没有相应属性,或者匹配的元素集合中没有元素,则返回undefined。

注意, .prop()方法和.attr()方法的不同: 继续阅读“属性节点处理”

jQuery之.attr()

.attr()方法可以方便地从第一个匹配元素中获取或设置一个属性的值。语法格式如下:

参数attributename指定要获取或设置的属性名。

参数value指定要设置的属性的值。

参数map指定一个Object对象,其中定义了很多属性及其对应的属性值,这些将被设置到元素作为元素的属性。

参数function(index, attr)指定一个函数,该函数的返回值将用作属性值来设置,函数中的关键字this是当前的元素,该属性在元素属性集合中的索引位置和旧的属性值为参数。

 

改变一个简单的属性:

一次设置多个属性:

 注意:当设置多个属性,包含属性名的引号是可选的。但是,当设置class属性时,必须使用引号包围class。例如:

再注意:IE不允许改变input, button元素的type属性。

 推算属性值:

也可以讲一个函数传递给.attr()方法作为参数,这样就可以根据元素的其他属性来计算要设置的属性值。例如下面的代码,可以把新属性与现有的属性值结合在一起:

这里运用一个函数来计算属性的值,当修改了多个元素的属性时,特别有用。

注意:如果指定的函数没有返回任何数据或者返回值是undefined时,当前值不会被改变。

 

——–文章摘自《jQuery全能权威指南》  清华大学出版社    张亚飞,高红霞 著

bgcolor/bgColor/backgroundColor/background/background-color区别

bgcolor 是HTML标签的属性,不区分大小写;

bgColor是JScript语法,区分大小写;

backgroundColor 是JavaScript语法,区分大小写;

background 是CSS样式属性,不区分大小写;

background-color 是CSS样式属性,不区分大小写;

以上特性均可更改指定元素的背景色,其中,background在更改背景色的同时也可更改背景图片。

IE模型和W3C DOM模型的不同之处(后续将不断补充)

前言:IE模型和W3C DOM模型有许多不同之处,在这里,我将自己在学习过程中遇到的不同之处罗列出来,以供日后参考。

一.事件对象

在Internet Explorer 中,事件对象是window对象的属性(window.event)。在该模型中,window.event属性包含最后一个已经发生的事件:

在W3C DOM 模型中,事件作为参数传递给事件处理函数:

若要使用与两者都兼容的方法访问事件,可以使用类似下面的函数:

继续阅读“IE模型和W3C DOM模型的不同之处(后续将不断补充)”

JavaScript 和 事件(事件注册)

Internet Explorer 的事件注册模型

Internet Explorer 中有两个分别用来注册事件处理程序和取消注册事件处理程序的方法,即 attachEvent() 和 detachEvent() 方法:

若要删除注册,可以使用以下代码:

 这些方法是IE浏览器专有的,只能在IE浏览器下工作。

 

W3C DOM 事件注册模型

W3C DOM 方法则使用3个参数事件名称函数名称和一个布尔值(true 或 false)。如果事件注册是在事件捕获阶段使用,则布尔值被设置为true,如果事件注册是在事件冒泡阶段使用,则布尔值被设置为false。

这里的事件侦听代码与传统事件注册代码等价:

myElement.onclick = startNow;

在传统的事件注册中,事件注册被添加在事件的冒泡阶段

若要删除事件侦听程序,可以使用以下代码: myElement.removeEventListener('click', startNow, false);

 

文章摘选自《Ajax 入门经典》(Beginning Ajax)Chris Ullman, Lucinda Dykes 著   徐璐 译   清华大学出版社