MozTW 討論區 https://forum.moztw.org/ |
|
javascript在firefox 3.0.1沒作用 https://forum.moztw.org/viewtopic.php?f=2&t=24340 |
第 1 頁 (共 1 頁) |
發表人: | jakert [ 2008-09-11, 02:40 ] |
文章主題 : | javascript在firefox 3.0.1沒作用 |
我有一段js在firefox失效,在IE很正常. 那是一個有關於線上購物的網站. 主要是針對各項欄位,在按下submit的時候用js對資料格式做偵測, 特別是對電話和郵遞區號偵測,不允許當中有非數字的字元,另還有email格式的偵測. 可是這電話格式的偵測一到了ff就完全失效,整個就直接送出了,導致收到的訂單裡面有許多欄位都是空白或者錯誤格式. js說實在不是我擅長的,我看不出哪裡不對,我擔心萬一購物車開放後有人用ff去下訂單,那我就毀了XD 有關於js的程式碼擷取部分如下,checkvalid(cnums)的那一段根本連跑都不跑,就直接被submit出去了. 因為我怕公布網站連結會有太多人來測試訂單,所以我暫時不貼完整的網址,請大家見諒,希望這樣足夠讓各位大大看出一點端倪,小弟先謝過了! ps.faq跑不出來,我不知道裡面有沒有類似的東西.. function validuser() { if (document.buy.uname.value.length == 0) { alert('請輸入 購買人姓名') document.buy.uname.focus() return false } if (document.buy.telephone.value.length == 0) { alert('請輸入 購買人聯絡電話') document.buy.telephone.focus() return false } if (!checkvalid(buy.telephone.value)) { buy.telephone.focus(); return false; } if (document.buy.zipcode.value.length == 0) { alert('請輸入 購買人地址之郵遞區號') document.buy.zipcode.focus() return false } else { return true } } function checkvalid(cnums) { for(var i=0 ; i<cnums.length ; i++) { if(cnums.charAt(i)<"0" || cnums.charAt(i)>"9") { alert("電話號碼和郵遞區號只能使用數字喔"); return false; } } return true; } |
發表人: | legnaleurc [ 2008-09-11, 03:31 ] |
文章主題 : | |
jakert 寫: function validuser()
{ if (document.buy.uname.value.length == 0) { alert('請輸入 購買人姓名') document.buy.uname.focus() return false } if (document.buy.telephone.value.length == 0) { alert('請輸入 購買人聯絡電話') document.buy.telephone.focus() return false } if (!checkvalid(buy.telephone.value)) { buy.telephone.focus(); return false; } if (document.buy.zipcode.value.length == 0) { alert('請輸入 購買人地址之郵遞區號') document.buy.zipcode.focus() return false } else { return true } } function checkvalid(cnums) { for(var i=0 ; i<cnums.length ; i++) { if(cnums.charAt(i)<"0" || cnums.charAt(i)>"9") { alert("電話號碼和郵遞區號只能使用數字喔"); return false; } } return true; } checkvalid(buy.telephone.value) 改成 checkvalid(document.buy.telephone.value) 應該就行 其他的就比照辦理 想在Firefox上debug 請愛用Firebug 另外基本上應該是可以再精練一點: 代碼: function validuser() {
with( document.buy ) { if(uname.value == '') { alert('請輸入 購買人姓名'); uname.focus(); return false; } if(telephone.value == '') { alert('請輸入 購買人聯絡電話'); telephone.focus(); return false; } if(!checkvalid(telephone.value)) { telephone.focus(); return false; } if(zipcode.value == '') { alert('請輸入 購買人地址之郵遞區號'); zipcode.focus(); return false; } return true; } } function checkvalid(cnums) { if( !cnums.match( /^\d+$/ ) ) { alert("電話號碼和郵遞區號只能使用數字喔"); return false; } return true; } |
發表人: | jakert [ 2008-09-11, 04:08 ] |
文章主題 : | |
謝謝legnaleurc大哥! 我剛剛才找到(才發現有)ff的錯誤主控台, (對ff還真是不夠熟悉) 並透過它發現了癥結點,就是document不能省略 沒錯,document.開頭加上去就整個好了, 天啊,我竟然為此煩惱了一個多月.... 我想我被IE帶壞了,這個也省那個也省, 我會改掉壞習慣,真的很謝謝legnaleurc大哥,也多謝您簡化程式的指導! |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |