MozTW 討論區
https://forum.moztw.org/

有關IE與firefox的javascript語法差異....
https://forum.moztw.org/viewtopic.php?f=2&t=11395
1 頁 (共 1 頁)

發表人:  AndyJiang [ 2005-11-11, 23:38 ]
文章主題 :  有關IE與firefox的javascript語法差異....

請問

小第目前想寫符合W3標準的網頁 (以前寫的都只符合微軟的「標準」) :oops:
也已經安裝firefox及Mozilla來進行網頁測試,
但是在寫javascript過程遇到一個問題,所以想請教

在IE上執行的javascript 可以成功中斷submit動作的語法,
在firefox及Mozilla就不行。程式碼如下:

function form1_onsubmit()
{
if ( something is false then )
{
return false; //這裡要中斷submit動作,但firefox不會return false回去
}

return true; //進行submit動作,在firefox 既使以經執行了if ()內的程式,還是會再執行 return true;
}

請問在firefox及Mozill要如何改以上的程式才能符合所要求的動作?

以上問題請前輩們不吝賜教,謝謝。

發表人:  AndyJiang [ 2005-11-12, 11:44 ]
文章主題 : 

自問自答......... :)

找到原因了,以下列html為例:

<form id="form1" method="post" action="" onsubmit="return form1_onsubmit();">
....
</form>

IE的javascript直接將 form1物件拿來用,不會有問題

而firefox則需要先定義出一個物件變數來代表form1,才能使用:

var fm = document.getElementById("form1");

原來如此啊 :D

有錯誤歡迎糾正,謝謝

發表人:  james [ 2005-11-12, 11:52 ]
文章主題 : 

理論上,若條件成立執行 return 後,不會執行剩餘的程式碼。
建議重新檢查你的程式碼,或者使用 If...else statement 如下述方法一。

方法一
代碼:
function form1_onsubmit() {
if ( something is false then )
  {
    ....
    return false;
  }
else // 最好加上。否則上列程式碼若非 return something,執行if{}後便繼續執行其後之程式碼。
  {
    ....
    return true;
  }
}


方法二
代碼:
function form1_onsubmit() {return (something is true)}

發表人:  AndyJiang [ 2005-11-14, 12:22 ]
文章主題 : 

感謝jams兄的指正

原來我貼的程式碼還漏貼else敘述 真不好意思 :oops:

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/