二. 例子 復制代碼 代碼如下: <form name="test-form" action="" method=""> <input type="checkbox" name="kk"> <form> <script t " /> 亚洲免费视频中文字幕,2021中文字幕在线,亚洲精品久久久久久久久久久久久

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

javascript下一種表單元素獲取方法存在的問題

一. 測試環境
瀏覽器: IE6+, FF 3.5.5, Opera 10, Chrome 4.0.249, Safari 4.0.3

二. 例子
復制代碼 代碼如下:
<form name="test-form" action="" method="">
<input type="checkbox" name="kk">
<form>
<script type="text/Javascript">
var oForm = document.forms['test-form'],
eles = oForm.elements['kk'];
alert(eles.length); // undefined
alert(eles.nodeType); // 1
</script>

三. 解決方法(我想到的方法是改變獲取方式, 基于YUI)
復制代碼 代碼如下:
<script type="text/Javascript">
var oForm = document.forms['test-form'],
eles = YAHOO.util.Dom.getElementsBy(function(el) {
return el.type === 'checkbox' && el.name === 'kk';
}, 'input', oForm);
alert(eles.length); // 1
</script>



document.formname.inputname

這個問題我之前已經遇到過一次了,但是這次又忘記了,依然又犯錯了,所以我必須要記錄一下。

看一下這個例子:
復制代碼 代碼如下:
<form name="hehe">
<input type="checkbox" name="haha" />
</form>
<form name="hehe2">
<input type="checkbox" name="haha" />
<input type="checkbox" name="haha" />
</form>
<script type="text/Javascript">
document.write(document.hehe.haha.length);
document.write('<br />');
document.write(document.hehe2.haha.length);
</script>

演示

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

在獲取表單的input時,我一般都習慣這么做,但是這樣做往往就出現問題了,因為很多時候我會去對比已選的checkbox和所有的 checkbox數量是否相等,但是只有一個的時候就會出錯,因為它返回的就是checkbox本身,并沒有length這個屬性,所以我們需要先判斷所取到的input是否有length屬性以便進一步操作。

另外記錄下location.reload(),它還有一個可選參數,true或者false,如果省略或者設置為false,它就會用HTTP頭 If-Modified-Since來檢測服務器上的文檔是否已改變。如果文檔已改變,reload()會再次下載該文檔。如果文檔未改變,則該方法將從緩存中裝載文檔。這與用戶單擊瀏覽器的刷新按鈕的效果是完全一樣的。如果設置為true,那么無論文檔的最后修改日期是什么,它都會繞過緩存,從服務器上重新下載該文檔。就是傳說中的強制刷新。

JavaScript技術javascript下一種表單元素獲取方法存在的問題,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 方山县| 汝州市| 白朗县| 夏津县| 扶绥县| 宁阳县| 新竹县| 甘孜县| 芜湖县| 冕宁县| 龙陵县| 阳城县| 永济市| 包头市| 嘉峪关市| 敖汉旗| 锡林浩特市| 宜兰市| 望城县| 门源| 洱源县| 新野县| 青田县| 北宁市| 资阳市| 沙雅县| 滨州市| 潼关县| 涿鹿县| 余姚市| 沐川县| 康乐县| 涿州市| 沁水县| 昌都县| 瓮安县| 宝丰县| 玛纳斯县| 灵武市| 乐至县| 门头沟区|