jquery方法怎么做select标签上回车到下一个input

图片描述

我现在要做的是在input上回车到下一个元素上,现在到select上回车就不动了.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://cdn.bootcss.com/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function(){

$("#testDiv :input[class='testClass']").keypress(function(e) {
  var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
  //alert(keyCode);
  if (keyCode == 39) // 判断所按是否方向右键
   {
    keyCode == 9;
   }
   if (keyCode == 13) // 判断所按是否回车键 FireFox下事件的keyCode 是只读的,不能修改
   {
    keyCode == 9;
    var ab = $(this).attr("tagName");
    var inputs = $("#testDiv :input[class='testClass']"); 
    var selects = $("#testDiv select");
    var idx = inputs.index(this); // 获取当前焦点输入框所处的位置
    var idx2 = selects.index(this); // 获取当前焦点输入框所处的位置

    if (idx == inputs.length - 1) {
        return false;
    } else {
        if (ab == "SELECT") {
        selects[idx2 + 1].focus();
        alert("a");
        //inputs[idx + 1].focus(); // 设置焦点
    } else if(ab == ""){
        alert("aaa");
    } else{
        
        inputs[idx + 1].focus(); // 设置焦点
    }

    }
    console.log(ab)
    return false;// 取消默认的提交行为
   }
  });

});
</script>
</head>
<body>
<div id="testDiv">
    <table>
        <thead>
            <tr>
                <th>1</th>
                <th>2</th>
                <th>3</th>
                <th>4</th>
                <th>5</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><select>
  <option value ="volvo">Volvo</option>
  <option value ="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
            </tr>
            <tr>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><select>
  <option value ="volvo">Volvo</option>
  <option value ="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
            </tr>
            <tr>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><select>
  <option value ="volvo">Volvo</option>
  <option value ="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
            </tr>
            <tr>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><select>
  <option value ="volvo">Volvo</option>
  <option value ="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select></td>
                <td><input class="testClass" value="" name="test1" /></td>
                <td><input class="testClass" value="" name="test1" /></td>
            </tr>
        </tbody>
    </table>
</div>
</body>
</html>

请问select上回车怎么解决啊?

阅读 4.8k
2 个回答

$("#testDiv :input[class='testClass']").keypress

你只是给 :input表单元素绑定事件了吧。

$("#testDiv :input[class='testClass']").add("select").keypress

我用的chrome。可以啊

<script>
$(document).ready(function(){

$("#testDiv :input[class='testClass']").keydown(function(e) {
var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if (keyCode == 39){

  keyCode == 9;

}
if (keyCode == 13){

keyCode == 9;
var ab = $(this).attr("tagName");
var bc = $(this).parent().next().children().attr("tagName");

var inputs = $("#testDiv :input[class='testClass']"); 
var selects = $("#testDiv select");
var idx = inputs.index(this);
var idx2 = selects.index(this);
//console.log(selects.length)
if (idx == inputs.length - 1) {
    return false;
} else {
    if (bc == "INPUT") {
        inputs[idx + 1].focus();
        console.log( ab+ ":"+bc)
    } else if(bc == "SELECT") {
            $(this).parent().next().children().focus().css("border","1px 127solid red");
            

$("#testDiv select").keydown(function(e){
var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if (keyCode == 13){
$(this).parent().next().children().focus();
}
})

        
        

    }else{
        inputs[idx + 1].focus();
    }
}
//inputs[idx + 1].focus();
return false;

}
});
});
</script>


结贴
谢谢大家

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题