顯示具有 JS 標籤的文章。 顯示所有文章
顯示具有 JS 標籤的文章。 顯示所有文章

2011年6月16日 星期四

如果想要在showModalDialog拷貝文字的話

我爬過文,有人建議將window.showModalDialog()改為用window.open(),使用起來跟我需求有出入,所以最後沒有用。因為window.open()在javascript內會直接跑到下段程式去,而我是要回傳資料的,所以就沒用他了。

一開始我用了document.all["t1"].contentEditable = "True",讓內容變為設計模式,但這不僅可以拷貝,還可以修改,默認值為"inherit"。但會造成物件內的文字可以被任意的更動或刪除。於是我加了個判斷輸入的函數,如下:


/*屏蔽Backspace,輸入內容不屏蔽*/
function document.onkeydown()
{
//限制 text, textarea 以外物件不回應的鍵盤操作
if(document.activeElement.type == "text" document.activeElement.type == "textarea")
{
if ((event.keyCode==116) //屏蔽 F5 刷新鍵
(event.ctrlKey && event.keyCode==82))//Ctrl + R
{
event.keyCode=0;
event.returnValue=false;
}
}
else
{
if (
(event.keyCode==8) //屏蔽退格刪除鍵
(event.keyCode==46) //屏蔽delete刪除鍵
(event.keyCode==116) //屏蔽 F5 刷新鍵
(event.ctrlKey && event.keyCode==82)){ //Ctrl + R
event.keyCode=0;
event.returnValue=false;
}
}
}

雖然解決了鍵盤輸入的問題,但滑鼠可以將文字任意拖動的問題卻依然存在。
最後只好改以 <textarea cols=60 rows=4 readonly >的方式來實現文字的拷貝。

2009年12月22日 星期二

javascript日期檢查

相關網址:JAVAScript中使用正則表達式檢測日期格式


<script type="text/javascript">
//彭嘉宏的日期格式檢查(使用正則式)
function dateVerify(date){
var reg = /^(\d{4})([\/,-])(\d{1,2})\2(\d{1,2})$/;
var r = date.match(reg);
if(r==null) return false;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
date=r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1);
return newStr==date;
}
//ChanPing的日期格式檢查(使用Date()判斷)
function dateVerify2(date){
var d= new Date(date.split("-").join("/"));
var r= date.split("-").join("/").split("/");
return d.getDate()==r[2]; //判斷日
}
</script>
<input type="text" name="t1" style="background-color:#FFFFFF;" value="2009-02-30" />
<input type=button value="判斷日期dateVerify()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify(t1.value))" >
<input type=button value="判斷日期dateVerify2()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify2(t1.value))" >