2016-04-16 22 views
-1

Kann mir jemand sagen, warum dieser Code nicht funktionieren würde? Ich habe eine Eingabe und ich versuche, das Wetter zu überprüfen oder nicht die Eingabe ist "Start". Also tue ich ... wie auch immer nichts funktioniert - nicht einmal das .ready, aber ich bin neu, also habe ich keine Ahnung, was das Problem ist.

HTMLjQuery .ready funktioniert nicht

<form id="inputForm" onsubmit="return false;"> 
    <input id="input" type="text" size="30" autofocus="autofocus" maxlength="100" autocomplete="off"/> 
</form> 

JS:

var input = ""; 

$(document).ready(function() { 
    $("#inputForm").submit(function() { 
    input = $("#input").val().toUpperCase(); 

    if (input === "START") { 
     alert("worked"); 
    } 

    $("#command_input").val(""); 
}) 
}); 
+0

Können Sie bitte Alert (Eingabe) und sagen Sie mir, was es warnt? – Erick

+0

Der Code scheint richtig. Wann tritt das Problem auf? Ist "Input" etwas? Wird das Formular gesendet? –

+2

Haben Sie jQuery importiert? jQuery ist nicht auf Lager JavaScript. Es ist eine Bibliothek. – 4castle

Antwort

2

Ich vermute, dass Sie in Ihre Webseite nicht jQuery aufgenommen haben. Sie können es importieren, indem

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 

Vor dem script Tag für Ihren Code hinzufügen. (https://code.jquery.com/jquery hat auch mehr jQuery CDNs)

Sie brauchen wirklich nicht jQuery, um dies zu tun. Hier ist der einfache JS entsprechende Code working here:

var input = ""; 
document.body.onload = function() { 
    document.getElementById("inputForm").addEventListener("submit", function() { 
     input = document.getElementById("input").value.toUpperCase(); 
     if (input === "START") { 
      alert("worked"); 
     } 
     document.getElementById("command_input").value = ""; 
    }); 
}; 
+0

Ich mag die Option JS oder jQuery. Hab dir dafür eine positive Bewertung gegeben. – Dresden

1
  1. Zuerst umfasst die jquery-Datei mit Script-Tag in Ihrer HTML-Datei.

  2. Übermitteln Sie das Formular mit jQuery oder im folgenden Fall habe ich mit einer Schaltfläche eingereicht. Übernehmen, der Wert wird aus dem Eingabefeld übernommen und verglichen.

var input = ""; 
 

 
$(document).ready(function() { 
 
    $("#inputForm").submit(function() { 
 
    input = $("#input-value").val().toUpperCase(); 
 

 
    if (input === "START") { 
 
     alert("worked"); 
 
    } 
 
    else 
 
    { 
 
    alert("sorry"); 
 
    } 
 

 
    $("#command_input").val(""); 
 
}) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="inputForm" onsubmit="return false;"> 
 
    <input id="input-value" type="text" size="30" autofocus="autofocus" maxlength="100" autocomplete="off"/> 
 
    <input type="submit" name="submit" value="submit" /> 
 
</form>

0

Wenn Sie false zurück aus dem Event-Handler, sollte die Dinge funktionieren.

var input = ""; 

$(document).ready(function() { 
    $("#inputForm").submit(function() { 
     input = $("#input-value").val().toUpperCase(); 

     if (input === "START") { 
      alert("worked"); 
     } else { 
      alert("sorry"); 
     } 

     $("#command_input").val(""); 

     // You have to return false HERE to prevent the default action of a      
     // form -- send a request to a server, that is 

     return false; 
    }); 
}); 
+0

Der Code funktioniert einwandfrei. Es ist in Ordnung, 'return false' in das Attribut 'onsubmit' zu setzen. Es ist nur ein Problem, wenn sie den Event-Handler auf andere Weise hinzugefügt haben. – 4castle

Verwandte Themen