濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ)

asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ)

熱門標(biāo)簽:浙江外呼系統(tǒng)怎么安裝 海外地圖標(biāo)注門市標(biāo) 銅川小型外呼系統(tǒng)運(yùn)營(yíng)商 山西防封卡電銷卡套餐 廈門商鋪地圖標(biāo)注 地圖標(biāo)注多個(gè)行程 云南外呼電銷機(jī)器人系統(tǒng) 上海楊浦怎么申請(qǐng)申請(qǐng)400電話 陜西人工外呼系統(tǒng)哪家好
1、也許講解有點(diǎn)初級(jí),希望高手不要“噴”我,因?yàn)槲抑啦⒉皇敲恳粋€(gè)人都是高手,我也怕高手們說我裝13;
2、如有什么不對(duì)的地方,還希望大家指出,一定虛心學(xué)習(xí),如果有更好的辦法請(qǐng)告訴我一聲哦;
3、本文屬于作者原創(chuàng),尊重他人勞動(dòng)成果,轉(zhuǎn)載請(qǐng)注明作者,謝謝。
下面開講:
  如題,這個(gè)功能也困擾了我一兩天事件了,我也上網(wǎng)找了很多資料,但是網(wǎng)上大部分的說法都差不多,問題始終還是沒解決,于是乎我開始找是問題的根源,我開始用的是文本框的onkeydown事件,分別寫了兩個(gè)js函數(shù),如下:
復(fù)制代碼 代碼如下:

//enter發(fā)送
function IsEnter(evt)
{
if(window.event.keyCode ==13)
{
send();
return false;
}
}
//ctrl+enter發(fā)送
function IsEnterAndCtrl()
{
if(window.event.keyCode ==13 window.event.ctrlKey)
{
send();
return false;
}
}

然后我就用文本框的onkeydown事件來調(diào)用這兩個(gè)函數(shù),可以一直效果不出來,我就調(diào)試,發(fā)現(xiàn)event永遠(yuǎn)都是undefined,我無語了,然后我就換方法了,我把onkeydown函數(shù)里面加了一個(gè)event參數(shù),在IsEnter(evt)里面也定義了一下var obj = window.event ? evt.keyCode : evt.which;//window.event是針對(duì)IE,evt.keyCode是針對(duì)FF,這樣這個(gè)問題就解決了,就不會(huì)出現(xiàn)undefined錯(cuò)誤了。
  接下來問題又來了,我發(fā)現(xiàn)onkeydown事件只要你按鍵盤上的任意鍵就會(huì)觸發(fā)這個(gè)事件,那么就無法實(shí)現(xiàn)ctrl和enter同時(shí)按了,又是一個(gè)糾結(jié)的問題啊,還有我們有onkeydown事件就有onkeyup事件,接下來我就把onkeydown事件換成了onkeyup事件了,這樣問題就解決了。
  好了,問題是越解決越少了,下面要做到是如何做到enter與ctrl+enter切換實(shí)現(xiàn)是換行還是發(fā)送消息?為了兼容性,我又定義了一個(gè)變量 var e = evt || window.event;我就是通過obj與e來實(shí)現(xiàn)換行與發(fā)送切換的,詳細(xì)js代碼如下:
復(fù)制代碼 代碼如下:

//enter or ctrl+enter發(fā)送
function IsEnter(evt)
{
var obj = window.event ? evt.keyCode : evt.which;
var e = evt || window.event;
var type = document.getElementById("sendtype");
var txt = document.getElementById("txtcontent");
if(type.innerHTML=="[Enter發(fā)送消息]")
{
if(obj ==13 !(e.ctrlKey))
{
send();
e.returnValue = false;
txt.value="";
return false;
}
if(e.ctrlKey e.keyCode==13)
{
txt.value +="\n";
}
}
else
{
if(e.ctrlKey e.keyCode==13)
{
send();
return false;
}
}
}

注意:以上代碼我都已經(jīng)在IE6、IE8、FF里測(cè)試過,絕對(duì)有用,由于按enter發(fā)送消息的時(shí)候會(huì)與換行沖突,所以我用e.returnValue = false;txt.value="";不知道有沒有更好的方法?
您可能感興趣的文章:
  • 在uiview 的tableView中點(diǎn)擊cell進(jìn)入跳轉(zhuǎn)到另一個(gè)界面的實(shí)現(xiàn)方法
  • 總結(jié)IOS界面間跳轉(zhuǎn)的幾種方法
  • Activit跳轉(zhuǎn)動(dòng)畫之界面上某個(gè)位置并裂開上下拉伸動(dòng)畫跳轉(zhuǎn)
  • IOS應(yīng)用內(nèi)跳轉(zhuǎn)系統(tǒng)設(shè)置相關(guān)界面的方法
  • IOS程序開發(fā)之跳轉(zhuǎn)短信發(fā)送界面實(shí)現(xiàn)發(fā)送短信功能
  • Android編程使用Fragment界面向下跳轉(zhuǎn)并一級(jí)級(jí)返回的實(shí)現(xiàn)方法
  • php+js iframe實(shí)現(xiàn)上傳頭像界面無跳轉(zhuǎn)
  • JS 退出系統(tǒng)并跳轉(zhuǎn)到登錄界面的實(shí)現(xiàn)代碼
  • Android中應(yīng)用界面主題Theme使用方法和頁面定時(shí)跳轉(zhuǎn)應(yīng)用
  • js實(shí)現(xiàn)界面向原生界面發(fā)消息并跳轉(zhuǎn)功能

標(biāo)簽:常州 信陽 許昌 朔州 萊蕪 自貢 西雙版納 孝感

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ)》,本文關(guān)鍵詞  asp.net,textbox,javascript,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ)》相關(guān)的同類信息!
  • 本頁收集關(guān)于asp.net textbox javascript實(shí)現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    天长市| 虎林市| 龙井市| 申扎县| 韩城市| 旬阳县| 平远县| 石台县| 故城县| 曲松县| 蕲春县| 长子县| 遂宁市| 九江县| 囊谦县| 钦州市| 敦煌市| 木兰县| 德保县| 太康县| 洛川县| 鄢陵县| 嘉善县| 宁德市| 隆回县| 象州县| 民乐县| 辽阳市| 靖江市| 镇原县| 聂拉木县| 应城市| 塔河县| 惠安县| 额尔古纳市| 兰西县| 牟定县| 泾源县| 林西县| 修武县| 新兴县|