下面是按回车键就换另一处焦点。
如题下面这段代码在FF下用会报错:window.event is undefined
<script type="text/javascript">
document.onkeydown=keyListener;
function keyListener(){
// if(event.keyCode==13)
//event.keyCode=9;
if (window.event.keyCode == 13 && window.event.srcElement.type!='image') {
window.event.keyCode = 9;
}
if(window.event.keyCode == 13 && window.event.srcElement.type=='image'){
document.showLogin.submit();
}
}
如何修改呢?
如题下面这段代码在FF下用会报错:window.event is undefined
<script type="text/javascript">
document.onkeydown=keyListener;
function keyListener(){
// if(event.keyCode==13)
//event.keyCode=9;
if (window.event.keyCode == 13 && window.event.srcElement.type!='image') {
window.event.keyCode = 9;
}
if(window.event.keyCode == 13 && window.event.srcElement.type=='image'){
document.showLogin.submit();
}
}
如何修改呢?
解决方案 »
- 在extjs的项目里加入ueditor插件引发js代码冲突
- 通过正则匹配出js代码片段
- 后台传给jsp页面json,使用jquery flexigrid没有数据显示
- jquery 如何对这一段XML进行操作,忘达人指点迷津。。。
- javascript如何调用c函数
- 求正则表达式
- 高手请进来:关于用JS来禁止IE自动填表的方案
- 自己写了一个Html,带JS, 希望任何能上网的地方都可以访问(不是下载文件的那种,直接浏览的那种),有没有网站可以用?
- 关于最大化的问题,孟子请进看看,会的也看看
- extjs panel 属性如何从request中获取
- ASP 使用Jquery跨域加载问题
- js显示数据库里数据
function keyListener()
{
var evt = window.event || arguments.callee.caller.arguments[0];
var src = evt.srcElement || evt.target;
var currentKey = evt.charCode||evt.keyCode;
if (currentKey == 13 && src.type!='image')
{
currentKey = 9;
}
if(currentKey == 13 && src.type=='image')
{
document.showLogin.submit();
}
}
document.onkeydown=keyListener;function keyListener(e){
var event = e||window.event; if (event.keyCode == 13 && event.srcElement.type!='image') {
event.keyCode = 9;
}
if(event.keyCode == 13 && event.srcElement.type=='image'){
document.showLogin.submit();
}
}
2楼也有报错:event.srcElement is undefined我只在FF下试了一下。大家还有别的放法没有?
document.onkeydown=keyListener;function keyListener(e){
var event = e||window.event;
var src = event.srcElement || event.target;
if (event.keyCode == 13 && src.type!='image') {
event.keyCode = 9;
}
if(event.keyCode == 13 && src.type=='image'){
document.showLogin.submit();
}
}
在FF下有如下报错:
setting a property that has only a getter
event.keyCode = 9;
还有没有正确的方法呢?就这么难吗?
setting a property that has only a getter
这话不是已经说,FF下是不能修改,只能读取。
浏览器之间还是有些差异的。
function keyListener(e){
e = e||window.event;
var dom = e.srcElement || e.target;
if (e.keyCode == 13 && dom.type!='image') {
}
if(e.keyCode == 13 && dom.type=='image'){
document.showLogin.submit();
}
}至于你那个e.keyCode = 9是想跳到下一个元素去吧。如果是我给你加上这个功能
document.getElementById("test").focus();
document.onkeydown=keyListener;
function keyListener(e){
e = e||window.event;
var dom = e.srcElement || e.target;
if (e.keyCode == 13 && dom.type!='image') {
while(dom.nextSibling.nodeType!=1) {
dom = dom.nextSibling;
}
dom.nextSibling.focus();
}
if(e.keyCode == 13 && dom.type=='image'){
document.showLogin.submit();
}
}
}
在IE 下这句 while(dom.nextSibling.nodeType!=1) {
缺少对象。
<form name="showLogin" onsubmit='return verify();return false;' >
<p> Submit Your Username &Password</p>
<p>Username <input name="username"type="text" size="20"id="username"></p>
<p>Password <input name="password" type="password" size="21"id="password"></p>
<p><input type="image" name="submit" id="submit" style="position:absolute; float:left; left: 88px; top: 192px;" src="images/enter.gif" onClick="verify();return false;" >
</p>
</form>
我的JS代码中下面有段用AJAX验证姓名和密码的代码。
window.onload = function() {
document.getElementById("username").focus();
document.onkeydown=keyListener;
function keyListener(e){
e = e||window.event;
var dom = e.srcElement || e.target;
if (e.keyCode == 13 && dom.type!='image') {
var form = dom.form;
for (var i=0; i < form.elements.length; i++) {
if (form.elements[i] == dom) {
for(var j=i+1; j <= form.elements.length; j++) {
if(j == form.elements.length) {
document.getElementById("submit").focus();
}
if (form.elements[j].type != "hidden") {
form.elements[j].focus();
return;
}
}
return;
}
}
}
if(e.keyCode == 13 && dom.type=='image'){
document.showLogin.submit();
}
}
}
上面的代码运行后有报错,IE 下:form.elements[j].type 为空或不是对象,
FF下类似:form.elements[j] is undefined
<html>
<body>
<script>
window.onload = function() {
document.getElementById("username").focus();
document.onkeydown=keyListener;
function keyListener(e){
e = e||window.event;
var dom = e.srcElement || e.target;
//if (dom.value=="") alert("值为空!");dom.focus();
if (e.keyCode == 13 && dom.type!='image')
{
if(window.event){window.event.keyCode=9;return;} //IE只需要这句,下面为FF使用!
var formd=document.getElementById("showLogin");
for(var i=0;i<formd.length;i++)
{
if(formd[i].type==dom.type)
{
if(formd[i+1]!="undefinded"){formd[i+1].focus();return;}
}
}
}
if(e.keyCode == 13 && dom.type=='image'){document.showLogin.submit();}
}
}
</script>
<form name="showLogin" id="showLogin">
<p> Submit Your Username &Password</p>
<p>Username <input name="username"type="text" size="20"id="username"></p>
<p>Password <input name="password" type="password" size="21"id="password"></p>
<p>Password <input name="password2" type="password" size="21"id="password2"></p>
<p><input type="image" name="submit" id="submit" style="position:absolute; float:left; left: 88px; top: 192px;" src="images/enter.gif" onClick="return false;" >
</p>
</form> </body>
</html>
这样试试可否!
$(document).ready(function(){
if($("#username").val()==""){
$("#username").focus();
}
else{if($("#password").val()==""){
$("#password").focus();
}
}
else{
$("input:eq(2)").focus();
}
});