2016-05-05 1 views
-2

Es ist wahrscheinlich etwas grundlegende, aber wollte Erklärung der Anwendungsfälle. Wie es manchmal bei "Enter" der Fall ist, werden die Daten eingegeben, während manchmal Mausklicks funktionieren. Ich bin besorgt über "Gotchas", die ich übersehen hätte. Wie vielleicht funktioniert es in Firefox aber nicht in Chrome zum Beispiel.

Ich sah die folgenden 2 Möglichkeiten, beide Möglichkeiten, Daten in ein Formularelement einzugeben.

Erster Weg

JavaScript

var $body = $(e.target).find('[name=body]'); //defines the content 
var comment = { body: $body.val() };  

HTML

<form class="form-send-message" id="addcomment" data-keyboard-attach> 
    <textarea id="body" name="body"></textarea> 
</form> 

Zweiter Weg

JavaScript

HTML

<form class="message" data-keyboard-attach> 
    <input type="text" name="body" id="body"> 
    <button class="icon" type="submit"></button> 
</form> 
+0

Zwei verschiedene JS-Bibliotheken? – evolutionxbox

Antwort

1

Hier können Sie zwei Möglichkeiten, sehen den Wert eines Eingangs/TextArea- mit einer Erklärung zu finden:

'submit .new-post': function(event){ 
    //returns name="postBody" content from the form you're submitting 
    var postBody = event.target.postBody.value; 

    //returns the value of an html element that exists in DOM, even if its inside a different template or form. 
    var postBody = $('.someClass').val() 
} 
1

Ihr erster Code jQuery ist, während Ihr zweiter Code Meteor ist. Beide können unter den richtigen Umständen das Gleiche erreichen. Laut this answer ist Meteors template.find ein Alias ​​für jQuerys $, was bedeutet, dass sie genau die gleichen sind.

Aber die Codes machen in diesem Fall nicht dasselbe.

Ihr erster Code findet den Wert eines Elements mit dem Namen "body" in e.target. Ich gehe davon aus, e ist ein Event, aber es gibt keine Möglichkeit, mit der aktuellen Menge an Code zu erzählen, die Sie gaben.

Der zweite Code erhält nur den Wert des ersten gefundenen INPUT-Elements.

Verwandte Themen