2010-12-28 11 views
-1

Der folgende Code färbt die Eingabe ein, sendet das Formular jedoch nicht in Chrom. Es funktioniert in Firefox:Warum diese Vorlage alle Formularcode nicht funktioniert?

<script type="text/javascript"> 
    $(function(){ 
    $('input').keypress(function(event) { 
    if (event.keyCode == '13') { 
    //alert($(this).parentsUntil('form').css('color')); 
    $('form').css('color','red'); 
    $('form').submit(); 
    } 
    });});</script> 

Bitte beachten Sie, dass die Submit-Button Anzeige eingestellt ist: keine, wenn ich es, um die Sichtbarkeit zu ändern: versteckt, es funktioniert, aber es den Platz reservieren, die nicht das, was ich will.

Danke.

EDIT

Hier ist ein vollständiges Beispiel wie unten angefordert:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script> 
<title>دخول</title> 
<script type="text/javascript"> 
$(function(){ 
    $('input').keypress(function(event) { 
     if (event.keyCode == 13) { 
      $(this).parents('form').submit(); 
     } 
    }); 
}); 
</script> 
</head> 
<body> 
<form action="http://www.yahoo.com" method='post'> 
<table > 
<tr><td>name: </td><td><input type="text" name="username" value=""></td></tr> 

<tr><td>password: </td><td><input type="password" name="password" value=""></td></tr> 
<tr><td colspan=2><a href="javascript:void(0)" onclick="$('#loginfrm').click();">Login</a> 
<div style="display: none;"><input type="submit" name="submit" value="Login" id="loginfrm"></div></td></tr> 
</table> 
</form> 
+0

Ihr Code funktioniert für mich wie mit einem einfachen Beispiel. Können wir ein voll funktionsfähiges Beispiel mit HTML-Markup sehen? –

+0

BTW, wussten Sie, dass Sie JavaScript-Code einrücken können? ;-P –

+0

Ändern Sie 'event.keyCode' in' event.which', 'keyCode' ist nicht vollständig crossbrowserfähig. –

Antwort

3

Ihr Problem ist, dass Sie Ihre Einreichung b benannt haben utton submit, der Browser sieht, dass als ein benutzter Name, geben Sie die Schaltfläche senden einen Namen wie dosubmit oder was auch immer und es funktioniert.

mit Namen submit (funktioniert nicht)

http://www.jsfiddle.net/pVUwW/

mit Namen dosubmit (Werke)

http://www.jsfiddle.net/pVUwW/1/

der einzige Unterschied in denen der Name des einreichen. Ansonsten änderte ich die event.keyCode zu event.which von Ihrem ursprünglichen Code, siehe http://api.jquery.com/event.which/ für Erklärung warum.

+0

Das sieht nicht nach einer guten Lösung aus:/ – emurad

+1

geben Sie der geänderten Lösung einen Versuch ... –

+0

Nein, das ist es nicht. – emurad

0

Diese seltsame, nur versucht, dies in Chrome, es funktioniert korrekt auch ohne Code (keypress)

http://jsfiddle.net/72Nbm/

+0

Ich sehe keine Aktion in Ihrem Beispiel, stellen Sie sicher, dass Sie auf "Ausführen" klicken, um Ihren Code zu testen. –

+0

Bitte versuchen Sie meinen Code oben. – emurad

Verwandte Themen