android js 模拟键盘

<HTML>
<HEAD>
    <TITLE>键盘隐藏</TITLE>
    <script src="http://www.u160.com/Js/jquery-1.4.4.min.js" type="text/javascript"></script>
    <style>
		input{ height:30px; line-height:30px; width:160px; text-indent:0.4em}
    </style>
</HEAD>
<BODY style="background:#eee;">
    <input class="t1 imUn" type="text" value="123" />
	<input class="t2 imUn" type="text" value="456" />
	<hr />
	<input class="t" type="text" value="888" />
	<span>删除</span>
	<div id="log" style="background:#fff;padding:5px;"></div>
    <script>

		/*
		$("#t").bind("focus",function(){
            //app.closeKey();
			setTimeout(function(){
				app.closeKey();
			},10)
        });
		*/
		var kpObj=null;
		function kpInput(v){
			if(kpObj){
				var o=kpObj;
				var val=o.val();
				((!val.replace("-","").length)||(kpObj[0].selectionStart==0 )) &&(v==".")&&(v="0.");//.替换成0.   val.indexOf(".")<0 &&
				kpiget();
				if(v=="-"||v=="0."){//只出现在最前方 或光标最前方
					(!val.length)&&o.val(v)&& kpiset(-v.length);
					(val.length)&&(val.indexOf(v)<0 && kpObj[0].selectionStart==0) && o.val(v+o.val()) && kpiset(-v.length);
				}else
					if(!isNaN(v)||v=="."){
					   //o.val(val+""+v);
					   kpInsert(v);
					}else{
					   if(v=="DEL"){
							o.val(val.substr(0,val.length-1));
					   }else
							if(v=="完成"){
								o.blur();
							}
					}
				var l=o.val().length;
				o.val()=="00" && 	o.val(0);//解决00开始
				o.val(o.val().replace(".","$#$").replace(/\./g,"").replace("$#$","."));//.只出现一次
				kpiset(l-o.val().length)
			}

		}

		function kpInsert(t){
			var i=kpObj[0].selectionStart;
			var v=kpObj.val();
			kpObj.val(v.substr(0,i)+t+v.substr(i,v.length-i));
			kpi=i+1;
		}

		var kpi=0;
		function kpiget(){
			kpi=kpObj[0].selectionStart;
		}

		function kpiset(val){
			kpObj[0].selectionStart=kpi-val;
			kpObj[0].selectionEnd=kpi-val;
			kpi=kpi-val;
		}

		var isbs=false
		function kpBackSpace(){
			if(isbs) return;
			isbs=true;
			var o=kpObj[0];
			if(o){
				var i=o.selectionStart;//非IE
				$(o).val($(o).val().substr(0,i-1)+$(o).val().substr(i,$(o).val().length-i));
				o.selectionStart=i-1;
				o.selectionEnd=i-1;
			}
			isbs=false;
		}

		function log(txt){
			$("#log").html($("#log").html()+"<br />"+txt);
		}

		$(".imUn").live("focus",function(){
			kpObj=$(this);
			app.keybHide();
		}).live("blur",function(){
			objKeypad=null;
			app.keybShow();
			var v=$(this).val()
			.replace(/[^\d.-]/g,"")//去掉非.-数字
			.replace(/^[0\.-]{1,}$/g,"0");//-0.000 替换成0
			v.length && (v=v.substr(0,1)+v.substr(1).replace(/-/g,"")); //去除不在最前面的-

			v!=""
			&&(v=Number(v.replace(".","$#$").replace(/\./g,"").replace("$#$",".")));
			$(this).val(v);

		})

		$("span").click(function(){
		$(".t2").remove();
		}

		);
    </script>
</BODY>
</HTML>

  

<HTML>
<HEAD>
    <TITLE>键盘隐藏</TITLE>
    <script src="http://www.u160.com/Js/jquery-1.4.4.min.js" type="text/javascript"></script>
    <style>
		input{ height:30px; line-height:30px; width:160px; text-indent:0.4em}
    </style>
</HEAD>
<BODY style="background:#eee;">
    <input class="t1 imUn" type="text" value="123" />
	<input class="t2 imUn" type="text" value="456" readonly="readonly" />
	<hr />
	<input class="t" type="text" value="888" />
	<div id="log" style="background:#fff;padding:5px;"></div>
	<div style="height:30px; line-height:30px; background#fefefe; position:absolute;bottom:0;">bottom</div>
    <script>

		var keypad={
			obj:null,
			ki:0,//光标位置
			kiGet:function(){
				this.ki=this.obj[0].selectionStart;
			},
			kiSet:function(i){
				this.ki=this.ki-i;
				this.obj[0].selectionStart=this.ki;
				this.obj[0].selectionEnd=this.ki;
			},
			insert:function(t){
				var i=this.obj[0].selectionStart;
				var v=this.obj.val();
				this.obj.val(v.substr(0,i)+t+v.substr(i,v.length-i));
				this.ki=i+1;
			},
			back:function(){
				var o=this.obj[0];
				if(o){
					var i=o.selectionStart;//非IE
					$(o).val($(o).val().substr(0,i-1)+$(o).val().substr(i,$(o).val().length-i));
					o.selectionStart=i-1;
					o.selectionEnd=i-1;
				}
			},
			input:function(v){
				var o=this.obj;
				if(o){
					log("1");
					var val=o.val();
					((!val.replace("-","").length)||(o[0].selectionStart==0 )) &&(v==".")&&(v="0.");//.替换成0.   val.indexOf(".")<0 &&
					log("2");
					this.kiGet();
					if(v=="-"||v=="0."){//只出现在最前方 或光标最前方
						log("3");
						(!val.length)&&o.val(v)&& this.kiSet(-v.length);
						(val.length)&&(val.indexOf(v)<0 && o[0].selectionStart==0) && o.val(v+o.val()) && this.kiSet(-v.length);
					}else
						if(!isNaN(v)||v=="."){
						   log("04");
						   this.insert(v);
						   log("05");
						}else{
						   if(v=="DEL"){
								o.val(val.substr(0,val.length-1));
						   }else
								if(v=="完成"){
									o.blur();
								}
						}
					log("6");
					var l=o.val().length;
					o.val()=="00" && 	o.val(0);//解决00开始
					o.val(o.val().replace(".","$#$").replace(/\./g,"").replace("$#$","."));//.只出现一次
					this.kiSet(l-o.val().length)
				}
			}
		}

		function log(txt){
			android&&android.webLog(txt);
			//$("#log").html($("#log").html()+txt);//+"<br />"
		}

		$(".imUn").live("focus",function(){
			keypad.obj=$(this);
			android.keybHide();
		}).live("blur",function(){
			log("blur");
			keypad.obj=null;
			android.keybShow();
			var v=$(this).val()
			.replace(/[^\d.-]/g,"")//去掉非.-数字
			.replace(/^[0\.-]{1,}$/g,"0");//-0.000 替换成0
			v.length && (v=v.substr(0,1)+v.substr(1).replace(/-/g,"")); //去除不在最前面的-

			v!=""
			&&(v=Number(v.replace(".","$#$").replace(/\./g,"").replace("$#$",".")));
			$(this).val(v);

		})

		$(function(){
			alert(0;)
		})

    </script>
</BODY>
</HTML>

  

<HTML>
<HEAD>
    <TITLE>键盘隐藏</TITLE>
    <script src="http://www.u160.com/Js/jquery-1.4.4.min.js" type="text/javascript"></script>
    <style>
		input[type=text]{ height:30px; line-height:30px; width:160px; text-indent:0.4em}
		input[type=button]{ height:30px; line-height:30px;}
    </style>
</HEAD>
<BODY style="background:#eee;">
    <input class="t1 imUn" type="text" value="123" />
	<input class="tt" type="button" value="处理" />
	<script>
		$(".tt").click(function(){

			//$(".t1").val($(".t1").val().replace(/[^\d.-]/g,""));

			//去掉结尾
			//$(".t1").val($(".t1").val().replace(/\.$/g,""));

			//去开头的0
			//$(".t1").val($(".t1").val().replace(/^0*./g,"")); //n0.替换掉0

			//$(".t1").val($(".t1").val().replace(/^\./g,"0."));

			//alert((/^[0\.-]{1,}$/g).test($(".t1").val()));

			var v=$(".t1").val()
			.replace(/[^\d.-]/g,"")//去掉非.-数字
			.replace(/^[0\.-]{1,}$/g,"0");//-0.000 替换成0
			v.length && (v=v.substr(0,1)+v.substr(1).replace(/-/g,"")); //去除不在最前面的-

			v!=""
			&&(v=Number(v.replace(".","$#$").replace(/\./g,"").replace("$#$",".")));
			$(".t1").val(v);

			/*
						v!="0"
			&&(
				v=v
				.replace(/\.$/g,"")//去掉末尾的.
				.replace(/^0{1,}\./g,".")//先替换n0.的
				.replace(/^0{1,}/g,"")//再替换开头为n个0(不然 0. 变成 .开头)
				.replace(/^\./g,"0.")//修复.为0.
			)

			var v=$(".t1").val();
			v=v.replace(v.substr(1),v.replace(/-/g,""))
			$(".t1").val(v);
			*/

		});
	</script>
</BODY>
</HTML>

  

时间: 2024-12-09 08:27:56

android js 模拟键盘的相关文章

JS模拟键盘事件 -- 原理及小例子

小例子: (Chrome下可用,其他浏览器未测试,使用新方法,暂不考虑兼容性) 代码如下: 1 <input type="button" tabindex="-1" value="点点点点点" id="btn"> 2 <input type="text" placeholder="1"> 3 <input type="text" plac

输入法切换小程序(js模拟键盘按键输入成功版)

花了半天时间写了个小程序,基本满足最初需求(但目前只支持IE浏览器). 需求: 在输入汉字的时候没有切换出中文输入法而导致输入了拼音,我们要做的是:将输入的拼音删除并且切换出中文输入法,重新自动在输入法中打出相应的字母. 我的电脑上默认只有两个输入法,中文输入法和美式键盘,所以模拟出”ctrl+空格键“即可在两个输入法之间进行切换. 做的过程和想法: 最初想的是使用网页配合js来做,毕竟界面好做一些.首先想到的就是用js来模拟键盘的输入,想法很好,但是却很难,主要是因为浏览器为了考虑安全性,所以

Atitit.android js 的键盘按键检测Back键Home键和Menu键事件

1. onKeyDown @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { // 在这里做你想做的事情 // super.openOptionsMenu();  // 调用这个,就可以弹出菜单 webView.loadUrl("javascript:KEYCODE_MENU_handle()"); } return true;

js模拟键盘按键事件

1 var WshShell = new ActiveXObject('WScript.Shell') 2 WshShell.SendKeys('{ }'); 说明:大括号内的是键盘上的按键如: 空格:{ } A:{A}

js模拟键盘按下事件

var btn = document.getElementById("myBtn"); var event = document.createEventObject(); event.screenX = 100; event.screenY = 0; event.clientX = 0; event.clientY = 0; event.ctrlKey = false; event.altKey = false; event.shiftKey = false; event.button

由chrome剪贴板问题研究到了js模拟鼠标键盘事件

写在前面 最近公司在搞浏览器兼容的事情,所有浏览器兼容的问题不得不一个人包了.下面来说一下今天遇到的一个问题吧 大家都知道IE下面如果要获得剪贴板里面的信息的话,代码应该如下所示 window.clipboardData.getData("Text") 可是在chrome下面就行不通了,chrome下面没有类似ie的这种方法,那应该怎么办呢,百度了一下,发现还真有办法. 只要在HTML界面上放上一个text类型的控件,如下所示 <textarea id="textAre

Android模拟键盘输入功能的实现

在做关于输入框的操作指引时,用动态的输入效果比用静态的图片指示效果会好很多,本文结合最近需要实现的一个搜索输入操作指引的功能介绍一下android平台模拟键盘输入的实现. 在android上不知道怎么录制gif的动态图,直接截图看一下效果吧,具体看demo就行啦. 实现起来很简单,开一个线程,通过sleep控制输入字符的间隔时间,封装一个模拟键盘输入的方法,最终代码是这样子的: public class TypeInActivity extends BaseActivity { @Overrid

Android查询:模拟键盘鼠标事件之adb shell 实现

1. 发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key code如下表所列: KeyEvent Value      KEYCODE     Comment 0       KEYCODE_UNKNOWN 1       KEYCODE_MENU     在SDK2.1的模拟器中命令失效,sendevent命令可行 2       KEYCODE_SOFT_RIGHT 3       KEYCODE_HOME

Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现) .

http://blog.csdn.net/roger_ge/article/details/5552740 转自csdn,实现模拟鼠标键盘系列 上一篇博文中讲述了通过Socket编程从外部向Emulator发送键盘鼠标模拟事件,貌似实现细节有点复杂.其实Android还有一种更简单的模拟键盘鼠标事件的方法,那就是通过使用adb shell 命令. 1.     发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key