MozTW 討論區

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

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





發表新文章 回覆主題  [ 3 篇文章 ] 
發表人 內容
文章發表於 : 2008-09-11, 02:40 
離線

註冊時間: 2008-09-11, 02:23
文章: 2
我有一段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;
}


回頂端
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; KKman3.0)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2008-09-11, 03:31 
離線
頭像

註冊時間: 2006-10-27, 07:29
文章: 1068
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;
}

_________________
以下為簽名檔
半荒廢日誌....

Foolproof Project:
KomiX 漫畫瀏覽
Khopper 音樂轉檔

就算你百分之一百認定某人是渣滓中的渣滓,請仍然展示你的冷靜、體諒、尊重。


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 (.NET CLR 3.5.30729)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2008-09-11, 04:08 
離線

註冊時間: 2008-09-11, 02:23
文章: 2
謝謝legnaleurc大哥!
我剛剛才找到(才發現有)ff的錯誤主控台,
(對ff還真是不夠熟悉)
並透過它發現了癥結點,就是document不能省略
沒錯,document.開頭加上去就整個好了,
天啊,我竟然為此煩惱了一個多月....
我想我被IE帶壞了,這個也省那個也省,
我會改掉壞習慣,真的很謝謝legnaleurc大哥,也多謝您簡化程式的指導!


回頂端
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; KKman3.0)
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 3 篇文章 ] 

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


誰在線上

正在瀏覽這個版面的使用者:Bing [Bot], Yahoo [Bot] 和 140 位訪客


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

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