javaScript 模拟键盘事件和鼠标事件(比如模拟按下回车等)

JQuery实现回车代替Tab键(按回车跳到下一栏)

模拟键盘按键 tab

如题,需求是模拟点击tab键。下面的方式无效,请教其他方式

一个提交按钮以后,用户如果按了键盘的回车键,默认情况下,就会提交这个表单了。这样对于用户输入各个表单项目,用户体验很不好,输入完一个项目,或者用鼠标选择下一个项目,或者用键盘的Tab键选中下一个项目。

二、问题要求:

1:如果当前处于焦点(也就是用户正在输入的那个文本框)不是最后一个输入框,那么按回车键时,将焦点转移到下一个输入框;

2:如果当前处于焦点(也就是用户正在输入的那个文本框)是最后一个输入框,那么按回车键时,将请用户确认后提交表单;

三、基本思路:

1:判断按键是否是回车建, 这个比较好办,用jQeury中的事件,就可以获取到当前按的键的值了,回车键的值是13,比较一下即可。

2:判断当前处于焦点的输入框是不是最后一个输入框。

$(function() {
 $(“form[name=‘contractForm’] input:text”).keypress(function(e) {
 if (e.which == 13) {// 判断所按是否回车键
 var inputs = $(“form[name=‘contractForm’]”).find(":text"); // 获取表单中的所有输入框
 var idx = inputs.index(this); // 获取当前焦点输入框所处的位置
 if (idx == inputs.length - 1) {// 判断是否是最后一个输入框
 if (confirm(“最后一个输入框已经输入,是否提交?”)) // 用户确认
 $(“form[name=‘contractForm’]”).submit(); // 提交表单
 } else {
 inputs[idx + 1].focus(); // 设置焦点
 inputs[idx + 1].select(); // 选中文字
 }
 return false;// 取消默认的提交行为
 }
 });
 });
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/webpage/include/taglib.jsp"%>
<html>
<head>
	<title>薪酬参数管理管理</title>
	<meta name="decorator" content="ani"/>
	<script type="text/javascript">

	$(function() {  
	    $("form[name='contractForm'] input:text").keypress(function(e) {  
	    if (e.which == 13) {// 判断所按是否回车键  
	        var inputs = $("form[name='contractForm']").find(":text"); // 获取表单中的所有输入框  
	        var idx = inputs.index(this); // 获取当前焦点输入框所处的位置  
	        if (idx == inputs.length - 1) {// 判断是否是最后一个输入框  
	        	$("#two").focus();
	            $("form[name='contractForm']").val() // 提交表单  
	        } else {  
	            inputs[idx + 1].focus(); // 设置焦点  
	            inputs[idx + 1].select(); // 选中文字  
	        }  
	        return false;// 取消默认的提交行为  
	    }  
	    });  
	}); 
		$(document).ready(function() {
				  if('${remunerationArgs.id}'==''){
					$("#personalPension").val('0.00');
					$("#personaCare").val('0.00');
					$("#personaUnemployment").val('0.00');
					$("#personaAccumulationFund").val('0.00');
					$("#unitEndowment").val('0.00');
					$("#unitMedicalService").val('0.00');
					$("#unitUnemployment").val('0.00');
					$("#unitInjury").val('0.00');
					$("#unitBirth").val('0.00');
					$("#unitCommercialInsurance").val('0.00');
					$("#unitHeating").val('0.00');
					$("#unitProvidentFund").val('0.00');
				}  
				   $(".b").change(function(){
					  if($("#personalPension").val()==''){
							$("#personalPension").val('0.00')
						} 
					  if($("#personaCare").val()==''){
							$("#personaCare").val('0.00')
						} 
					  if($("#personaUnemployment").val()==''){
							$("#personaUnemployment").val('0.00')
						} 
					  if($("#personaAccumulationFund").val()==''){
							$("#personaAccumulationFund").val('0.00')
						} 
					  if($("#unitEndowment").val()==''){
							$("#unitEndowment").val('0.00')
						} 
					  if($("#unitMedicalService").val()==''){
							$("#unitMedicalService").val('0.00')
						} 
					  if($("#unitUnemployment").val()==''){
							$("#unitUnemployment").val('0.00')
						} 
					  if($("#unitInjury").val()==''){
							$("#unitInjury").val('0.00')
						} 
					  if($("#unitBirth").val()==''){
							$("#unitBirth").val('0.00')
						} 
					  if($("#unitCommercialInsurance").val()==''){
							$("#unitCommercialInsurance").val('0.00')
						} 
					  if($("#unitHeating").val()==''){
							$("#unitHeating").val('0.00')
						} 
					  if($("#unitProvidentFund").val()==''){
							$("#unitProvidentFund").val('0.00')
						} 
				  });

		});
		function save() {
            var isValidate = jp.validateForm('#inputForm');//校验表单
            if(!isValidate){
                return false;
			}else{
                jp.loading();
                jp.post("${ctx}/staff/remunerationargs/remunerationArgs/save",$('#inputForm').serialize(),function(data){
                    if(data.success){
                        jp.getParent().refresh();
                        var dialogIndex = parent.layer.getFrameIndex(window.name); // 获取窗口索引
                        parent.layer.close(dialogIndex);
                        jp.success(data.msg)

                    }else{
                        jp.error(data.msg);
                    }
                })
			}

        }
	</script>
</head>
<body class="bg-white">
		<form:form id="inputForm" name='contractForm'  modelAttribute="remunerationArgs" class="form-horizontal">
		<form:hidden path="id"/>	
		<table class="table table-bordered">
		   <tbody>
		   
				<tr>
					<td class="width-15 active" ><label class="pull-right"><font color="red">*</font>薪酬方案名称:</label></td>
					<td class="width-35">
						<form:input path="programmeName" htmlEscape="false"    class="form-control required stringCheck"/>
					</td>
					</tr>
					<tr> <td ><h1 class="panel-title">个人缴费参数</h1></td> </tr>
					<tr>
					<td class="width-15 active"  ><label class="pull-right">个人养老(%):</label></td>
					<td class="width-35" >
						<form:input path="personalPension" htmlEscape="false"   class="form-control  isFloatGteZero b" />
					</td>
					<td class="width-15 active"><label class="pull-right">个人医疗(%):</label></td>
					<td class="width-35">
						<form:input path="personaCare" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					</tr>
					<tr>
					<td class="width-15 active"><label class="pull-right">个人失业(%):</label></td>
					<td class="width-35">
						<form:input path="personaUnemployment" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					<td class="width-15 active"><label class="pull-right">个人公积金(%):</label></td>
					<td class="width-35">
						<form:input path="personaAccumulationFund" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					</tr>
					<tr> <td ><h1 class="panel-title">单位缴费参数</h1></td> </tr>
					<tr>
					<td class="width-15 active"><label class="pull-right">单位养老(%):</label></td>
					<td class="width-35">
		 				<form:input path="unitEndowment" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					<td class="width-15 active"><label class="pull-right">单位医疗(%):</label></td>
					<td class="width-35">
						<form:input path="unitMedicalService" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					</tr>
					<tr>
					<td class="width-15 active"><label class="pull-right">单位失业(%):</label></td>
					<td class="width-35">
						<form:input path="unitUnemployment" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					<td class="width-15 active"><label class="pull-right">单位工伤(%):</label></td>
					<td class="width-35">
						<form:input path="unitInjury" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					</tr>
					<tr>
					<td class="width-15 active"><label class="pull-right">单位生育(%):</label></td>
					<td class="width-35">
						<form:input path="unitBirth" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					<td class="width-15 active"><label class="pull-right">单位商业险(%):</label></td>
					<td class="width-35">
						<form:input path="unitCommercialInsurance" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					</tr>
					<tr>
					<td class="width-15 active"><label class="pull-right">单位采暖(%):</label></td>
					<td class="width-35">
						<form:input path="unitHeating" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					<td class="width-15 active"><label class="pull-right">单位公积金(%):</label></td>
					<td class="width-35">
						<form:input path="unitProvidentFund" htmlEscape="false"    class="form-control  isFloatGteZero b" />
					</td>
					</tr>
					<tr>
					<td class="width-15 active" ><label class="pull-right">备注:</label></td>
					<td class="width-35" colSpan="3">
						<form:textarea path="remarks" htmlEscape="false"  id="two"  rows="4" maxlength="2000"    class="form-control "/>
					</td>
				</tr>
		 	</tbody>
		</table>
	</form:form>
</body>
</html>