MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-06-24, 07:05

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 10 篇文章 ] 
發表人 內容
文章發表於 : 2004-04-18, 16:11 
離線

註冊時間: 2004-04-18, 14:40
文章: 12
來自: 新竹
這個可能大家都知道了....mozilla 下的<script 標籤不支援 event 和 for 屬性
不過第一次體會到他的不方便性:(
(當然還是因為我常以IE為開發基準..沒有就變的很不方便)

一個頁面裡, 有很多個 select 選單, 因為他們都要做同樣的動作
而這個動作function裡的parameters是得等php在整固網頁跑完後, 才順著迴圈一起跑出來

所以我最後只能決定把這個 select 在 onchange 的時候要做的動作放在網頁最下面
(而且這些 select input 的 id 也被我取成一樣)
這樣在這個 function 靠著 event 和 for 的兩個屬性就可以在網頁最後宣告完成, 並讓上面只要是同 id 的 select input 都會動了

當然這關係到我PHP的寫法, 當然我PHP變跑兩次迴圈就好了, 第一次先產生onchange event的function需要的parameter, 第二次再把這些parameter寫到select 的onchange event裡

但....總之程式碼就變麻煩了許多

到底在 Mozilla 下, script 的 event 和 for 這兩個屬性有沒有取代的方法??
希望有識之士能為我解答, 非常感謝~!

(如果看不懂我再講什麼....也許我能再描述詳細一點)


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-20, 12:05 
離線

註冊時間: 2004-04-18, 14:40
文章: 12
來自: 新竹
自問自答...

就在一陣亂看之中, 竟是也解出來了...

在這個位置偷到了這段語法:(http://www.csie.ntu.edu.tw/~piaip/nicetitle.js)
引言回覆:
function addEvent(obj, evType, fn){
if (obj.addEventListener){
obj.addEventListener(evType, fn, true);
return true;
} else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
} else {
return false;
}
}


然後.....
addEvent(document.getElementById('selectSort'), "change", checkOrderFn)

因為自己原來寫給 selectSort 要用的函式需要帶進參數, 所以其實又自己加了這段:

引言回覆:

function checkOrderFn(){
checkOrder(parameter1, this.name, this.form.name)
}



到是這一段我只想的到有這個方法解決.....不知道是不是可以不用這麼麻煩??


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-20, 17:15 
老實說真的不大明白你說什麼 :oops:
但anyway, event和for不是標準語法.
其他非Win IE的瀏覽器應該都不支援.
甚至, Mac IE都可能不支援.

至於你所說的onchange, 相信是指HTML的intrinsic event.
這個Mozilla是有支援的. 只要存取HTML元素的物件就行.

但我不大了解為什麼會使PHP程式碼變得麻煩, 不知你能否說得詳細一點?


回頂端
  
引用回覆  
文章發表於 : 2004-04-20, 23:43 
離線
[網站管理員]
頭像

註冊時間: 2002-01-07, 19:28
文章: 3080
來自: 台灣
yhvh 寫:
(如果看不懂我再講什麼....也許我能再描述詳細一點)


(舉手) 報告老師, 我看不懂. 老師你有沒有比較直接的範例...

_________________
雜工 :: 柏強 / Bob Chao
發問討論請保持禮節,在志工社群裡沒有人有「義務」要為您做些什麼。

* MozTW 志工無限招募中,開放網路世界需要您的一臂之力


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-27, 16:49 
離線

註冊時間: 2004-04-18, 14:40
文章: 12
來自: 新竹
唔..後來發現我 Mozilla 用的方法還是有點不太一如原來 IE 的動作

他addEvent指定ID給物件後, 所有同名ID的物件只有第一個會動..後面的都不會動
到是在MSIE下, 指定EVENT給該ID的物件後..所有同ID的物件都會動..^^||


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-27, 17:10 
離線

註冊時間: 2004-04-18, 14:40
文章: 12
來自: 新竹
唔..大概關於這個問題..我也發現似乎有很多寫法...不過也有點懶得改
我來PO清楚點看看

其實就是用PHP展生一個TABLE, 裡面有佷多筆資料
然後TABLE的的每一筆都會有一個排序號碼

顯示這個排序號碼的是一個Select, 可以再另外選其他的排序
所以在表單送出後, 就有新的排序號碼可以UPDATE
但是為了不要讓另外選的排序號碼會和別人重覆
所以我才只能寫一個JS的程式用來檢查其他所有TABLE中每一筆資料在Select項目裡的排序號碼不會重覆

當這個有排序號碼的Select選單發動onChange時, 需要執行的函式...會需要所有TABLE裡每一筆資料的排序號碼和他在資料庫裡的序號的, 所以才會順著PHP產生TABLE的迴圈產生一組包括所有SELECT的selectedIndex和這筆資料在資料庫裡的序號的字串, 然後丟給那個函式去比對重覆

不過寫到這裡忽然又不太有力繼續講下去了...我又發現有更簡單的方法可以解決了.......我真應該直接去撞牆.......|||

謝謝各位囉~~我在這個上面總是能找到我在 Mozilla 上開發 Javascript 的方法


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-29, 08:52 
離線
[網站管理員]
頭像

註冊時間: 2002-01-07, 19:28
文章: 3080
來自: 台灣
yhvh 寫:
唔..後來發現我 Mozilla 用的方法還是有點不太一如原來 IE 的動作

他addEvent指定ID給物件後, 所有同名ID的物件只有第一個會動..後面的都不會動
到是在MSIE下, 指定EVENT給該ID的物件後..所有同ID的物件都會動..^^||


ID 中所包含的應該是整份文件裡的唯一值啊 @_@ IE 會動還真的是他的錯...

對了既然講到 ID 就來提一下 Form 跟 PHP 的一個特殊情況:

我們用 PHP 來存取 Checkbox 時習慣上會將 Name 命為 bob[] 這樣的名字
如此一來 Checkbox 丟進 PHP 時會變成陣列方便存取

這樣看起來很方便,所有的 name 都命名為 bob[] 就好了,但實際上遇到 JavaScript 要存取時就很麻煩... 所有的名字都是 bob[],那怎麼去取得特定的某個呢?

使用陣列的概念,存取第 n-1 個 Checkbox 是一種方法,不過其實有比較好的做法: 利用 ID 是唯一值的概念,將同名的 Checkbox 加上不同的 ID,就可以很方便的利用 getElementById 來取得某特定的 Checkbox 了!而表單在送出時使用的是 name,所以沒差。

這樣的方法也符合網站標準

_________________
雜工 :: 柏強 / Bob Chao
發問討論請保持禮節,在志工社群裡沒有人有「義務」要為您做些什麼。

* MozTW 志工無限招募中,開放網路世界需要您的一臂之力


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-29, 14:49 
離線
[MozTW 版主群]
頭像

註冊時間: 2003-09-15, 03:47
文章: 1016
來自: Taiwan
有試過 document.getElementsByName('name') 嗎?


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-30, 01:39 
離線
[網站管理員]
頭像

註冊時間: 2002-01-07, 19:28
文章: 3080
來自: 台灣
dwx 寫:
有試過 document.getElementsByName('name') 嗎?

啊,沒有 XD !!!!

等下來試試看 getElementsByName("bob[]") 能不能用... 謝謝 :)

_________________
雜工 :: 柏強 / Bob Chao
發問討論請保持禮節,在志工社群裡沒有人有「義務」要為您做些什麼。

* MozTW 志工無限招募中,開放網路世界需要您的一臂之力


回頂端
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2004-04-30, 01:59 
離線
[網站管理員]
頭像

註冊時間: 2002-01-07, 19:28
文章: 3080
來自: 台灣
yhvh 寫:
自問自答...到是這一段我只想的到有這個方法解決.....不知道是不是可以不用這麼麻煩??

我現在才確定自己看懂了,真抱歉 @_@...
dwx 的 getElementsByName 應該可以同時解決你的問題+我後來補充的 PHP 問題 (我真是太笨了... 原來 getElementsByName("bob[]") 可以用啊... 一直以為有 [] 很奇怪結果居然可以用....)
name 不需要是唯一值所以可以一次以 name 來 addEventListener....

沒有 name 的標籤怎麼辦... mmm... by tag...?
用比較迂迴的方式 by tag with class set to "xxx" .... 先抓出所有該種 tag, 過濾 class = xxx 的標籤出來,用 for 慢慢加?? @_@....

_________________
雜工 :: 柏強 / Bob Chao
發問討論請保持禮節,在志工社群裡沒有人有「義務」要為您做些什麼。

* MozTW 志工無限招募中,開放網路世界需要您的一臂之力


回頂端
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 10 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 8 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群