怎樣係javascript的input set做一定係數字,輸入英文字母或其他符號就會冇反應??

2008-04-25 4:40 am
<input type="text" name="disp1" id="disp1" size="6">
<input name="button" type="button" onclick="BReset('1');" value="Reset">
如果個user入咗個唔係數字既string,再按button會冇反應
應該點寫??
如果個user入一個負數,再按button會冇反應
應該點寫??
簡單黎講,個user一定要入正數,按button先有反應
應該點寫??
更新1:

唔明

更新2:

我想disp1.value一定係正數按start同reset先有反應 我set咗個boolean叫click, click= false,就會按start同reset都冇反應 應該點寫?

更新3:

加咗a = document.[formname].disp1.value; aa = isNaN(a) ;等code 點解佢話我無object???

回答 (1)

2008-04-25 5:12 am
✔ 最佳答案
想問你function BReset(“1”)會做甚麼,重置 document.[formname].disp1.value嗎?

假設你 function BReset就是處理上述問題的程式,在程式某處應該有那裡像以下的東西:
a = document.[formname].disp1.value;
aa = isNaN(a) ; 不是number的話會傳回true,是number會傳回false。
(if aa = “false”) { 只在是數字時有反應。
(if a 》= 0) { a大過或等於零執行你想要的程式
}}
else return nil

注意,yahoo知識+ 自動將認為會打亂回答的字體改掉

2008-04-25 14:01:50 補充:
先解說寫了的:
1.) a = document.[formname].disp1.value;是會將任何寫在disp1個textbox裡的字或數字設定為a。
2.) aa = isNaN(a) ;isNaN(a)指is Not a Number,會看a是數字還是文字,不是數字回傳true。

2008-04-25 14:01:59 補充:
3.) if (aa = “false”) { } 因為你想在disp1.value是數字時有反應,所以應該在這裡寫接下去想要處理的。而aa=“true”那方面不用理或program,因為你不想對在disp1.value裡的非數字執行甚麽。話雖如此,else return 0 (應該是0不是nil)已經連aa=“true”的可能性一起處理掉,所以當aa=“true”就不會做任何事

2008-04-25 14:02:04 補充:
4.) if (a 》= 0) {} 這個是在 if(aa = “false”)內的程式,只有disp1.value達成aa = “false”才會執行。而當a是大於或等於零(yahoo會把[大於]這符號變亂碼,所以由》代替)亦是disp1.value是任何正數時才會執行的程式。

2008-04-25 14:26:27 補充:
至於你set左個boolean叫click:
你在if (a 》= 0) {} 內設定click=“true”,加入你想執行的程式於此,之後在此程式外(即我寫的else return 0那裡)在else 裡加入click=“false”(當disp1.value不是正數click便會變回false,鎖住start同reset制)。

即改成這樣:
else { click=“true”;return 0 ;}

回傳 0 即 return 0 會將程式完成及傳回0

2008-04-25 14:39:58 補充:
你start同reset制最好由同一組function來處理,比如說Mainfunction加上你BReset 及 BStart,不過如何設計因人而異。由boolean click來控制鎖或不鎖button 是不錯的方式,好點子。
不過因不太明白你想start甚麼,所以未必是完全理想的答案,但都希望有幫助。


收錄日期: 2021-04-25 22:24:16
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20080424000051KK02435

檢視 Wayback Machine 備份