存档

文章标签 ‘js’

关于JS获取select的值

2010年3月16日

近日,在一项目中需要采用JS获取Select选择框所选中项的值,居然一下子忘记了如何获取。于是看了DOM文档,真觉得是自己老了,连这么简单的东西都忘记了。

为怕以后再忘记,也给同行一个提示,遂记录于此。

<select id="s1" name="s1">
<option selected="selected" value="1">选项一</option>
<option value="2">选项二</option>
<option value="3">选项三</option>
</select>

操作一、获取所选择项显示的文字

document.getElementById(‘s1’).options[document.getElementById(‘s1’).selectedIndex].text

若当前选中“选项二”,则这种方式所取的结果为:选项二

操作二、获取所选择项的value

document.getElementById(‘s1’).options[document.getElementById(‘s1’).selectedIndex].value

若当前选中“选项二”,则这种方式所取的结果为:2

操作三、获取当前选择项

document.getElementById(‘s1’).selectedIndex

若当前选中“选项一”,则这种方式所取的结果为:1

这里对于select必须得有id属性,才能采用getElementById获取该控件,这点需要注意。

另外,对于PHP获取页面所提交的Select控件的值,需要Select控件得有name属性,在PHP内获取表单上的Select控件数据时,采用$s = $_POST[‘select的name属性值’];这种方式来获取。

怎么样? 其实很简单的吧,希望能给初学者一个启示!

HTML, Javascript, PHP教程 , , ,

一些常用键盘值

2009年4月2日

除了上文罗列的所有的键盘值,在开发中常常会用到一些固定键的值。

altKey   设置或获取   Alt   键的状态。

altLeft   设置或获取左   Alt   键的状态。

Banner   使用   event   对象获取高级流重定向器(ASX)文件中项目的   Banner   内容。

button   设置或获取用户所按的鼠标按钮。

cancelBubble   设置或获取当前事件是否要在事件句柄中向上冒泡。

clientX   设置或获取鼠标指针位置相对于窗口客户区域的   x   坐标,其中客户区域不包括窗口自身的控件和滚动条。

clientY   设置或获取鼠标指针位置相对于窗口客户区域的   y   坐标,其中客户区域不包括窗口自身的控件和滚动条。

contentOverflow   获取表明文档处理当前   LayoutRect   对象后是否包含附加的内容。

ctrlKey   设置或获取   Ctrl   键的状态。

ctrlLeft   设置或获取左   Ctrl   键的状态。

dataFld   设置或获取   oncellchange   事件影响的数据列。

fromElement   设置或获取事件发生时激活或鼠标将要离开的对象。

keyCode   设置或获取与导致事件的按键关联的   Unicode   按键代码。

MoreInfo   通过   event   对象获取高级流重定向器(ASX)文件中项目横幅的   MoreInfo   内容。

nextPage   获取打印模板中下页的位置。

offsetX   设置或获取鼠标指针位置相对于触发事件的对象的   x   坐标。

offsetY   设置或获取鼠标指针位置相对于触发事件的对象的   y   坐标。

propertyName   设置或获取对象上发生更改的属性名称。

qualifier   设置或获取由数据源对象提供的数据成员的名称。

reason   设置或获取数据源对象的数据传输结果。

recordset   从数据源对象设置或获取对默认数据集的引用。

repeat   获取   onkeydown   事件是否正在重复。

returnValue   设置或获取事件的返回值。

saveType   当   oncontentsave   触发时获取剪贴板类型。

screenX   设置或获取获取鼠标指针位置相对于用户屏幕的   x   坐标。

screenY   设置或获取鼠标指针位置相对于用户屏幕的   y   坐标。

shiftKey   设置或获取   Shift   键的状态。

shiftLeft   设置或获取左   Shift   键的状态。

srcElement   设置或获取触发事件的对象。

srcFilter   设置或获取触发   onfilterchange   事件的滤镜对象。

srcUrn   获取触发事件的行为的统一资源名称(URN)。

toElement   设置或获取用户要将鼠标指针移动指向的对象的引用。

type   从   event   对象中获取事件名称。

wheelDelta   设置或获取滚轮按钮滚动的距离和方向。

Javascript , ,

JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度

2009年2月5日

网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth

HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

IE,FireFox 差异如下:

IE6.0、FF1.06+:

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5:
clientWidth = width – border

clientHeight = height – border

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

-------------------

技术要点
本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下。

要得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在Netscape下需要使用Window的属性;在 IE下需要深入Document内部对body进行检测;在DOM环境下,若要得到窗口的尺寸,需要注意根元素的尺寸,而不是元素。

Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。

Document对象的body属性对应HTML文档的标签。Document对象的documentElement属性则表示HTML文档的根节点。

document.body.clientHeight表示HTML文档所在窗口的当前高度。document.body. clientWidth表示HTML文档所在窗口的当前宽度。

实现代码

< !DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>请调整浏览器窗口</title>
<meta http-equiv=”content-type” content=”text/html; charset=gb2312″>
</meta></head>
<body>
<h2 align=”center”>请调整浏览器窗口大小</h2><hr />
<form action=”#” method=”get” name=”form1″ id=”form1″>
<!–显示浏览器窗口的实际尺寸–>
浏览器窗口 的 实际高度: <input type=”text” name=”availHeight” size=”4″/><br />
浏览器窗口 的 实际宽度: <input type=”text” name=”availWidth” size=”4″/><br />
</form>
<script type=”text/javascript”>
<!–
var winWidth = 0;
var winHeight = 0;
function findDimensions() //函数:获取尺寸
{
//获取窗口宽度
if (window.innerWidth)
winWidth = window.innerWidth;
else if ((document.body) && (document.body.clientWidth))
winWidth = document.body.clientWidth;
//获取窗口高度
if (window.innerHeight)
winHeight = window.innerHeight;
else if ((document.body) && (document.body.clientHeight))
winHeight = document.body.clientHeight;
//通过深入Document内部对body进行检测,获取窗口大小
if (document.documentElement  && document.documentElement.clientHeight && document.documentElement.clientWidth)
{
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
}
//结果输出至两个文本框
document.form1.availHeight.value= winHeight;
document.form1.availWidth.value= winWidth;
}
findDimensions();
//调用函数,获取数值
window.onresize=findDimensions;

//–>
</script>
</body>
</html>

源程序解读

(1)程序首先建立一个表单,包含两个文本框,用于显示窗口当前的宽度和高度,并且,其数值会随窗口大小的改变而变化。

(2)在随后的JavaScript代码中,首先定义了两个变量winWidth和winHeight,用于保存窗口的高度值和宽度值。

(3)然后,在函数findDimensions ( )中,使用window.innerHeight和window.innerWidth得到窗口的高度和宽度,并将二者保存在前述两个变量中。

(4)再通过深入Document内部对body进行检测,获取窗口大小,并存储在前述两个变量中。

(5)在函数的最后,通过按名称访问表单元素,结果输出至两个文本框。

(6)在JavaScript代码的最后,通过调用findDimensions ( )函数,完成整个操作。

jswidthjpg

DIV/CSS, HTML, Javascript , , , , ,