Ich verwende eine JQuery-Vorlage, um dynamisch mehrere Elemente auf derselben Seite zu generieren. Jedes Element sieht so aus
<div id ="DynamicValueAssignedHere">
<div class="something">Hello world</div>
<div class="formdiv">
<form name="inpForm">
<input type="text" name="FirstName" />
<input type="submit" value="Submit" />
</form>
</div>
</div>
Ich möchte Jquery verwenden, um das Formular beim Absenden zu verarbeiten. Ich möchte auch die Formularwerte auf ihre vorherigen Werte zurücksetzen, falls etwas schief gehen sollte. Meine Frage ist: Wie kann ich mit Jquery den Wert des Eingabefelds ermitteln? Zum Beispiel kann ich den Wert des div mit der Klasse "etwas" erhalten, indem ich es tue
var something = $(#DynamicValueAssignedHere).children(".something").html();
In ähnlicher Weise möchte ich den Wert des Textfelds abrufen können. Im Moment habe ich es versucht
var text = $(#DynamicValueAssignedHere).children(".formdiv").findnext('input[name="FirstName"]').val();
aber es scheint nicht zu funktionieren
javascript
jquery
João Pimentel Ferreira
quelle
quelle
$('input')[0].form.FirstName.value
Zugriff auf den Wert des FeldesAntworten:
Sie müssen verwenden
value attribute
, um seinen Wert zu erhalten<input type="text" name="FirstName" value="First Name" />
Versuchen -
var text = $('#DynamicValueAssignedHere').find('input[name="FirstName"]').val();
quelle
Es kann viel einfacher sein als das, was Sie tun.
HTML:
<input id="myField" type="text" name="email"/>
JavaScript:
// getting the value var email = $("#myField").val(); // setting the value $("#myField").val( "new value here" );
quelle
Ein alternativer Ansatz, ohne nach dem Feld HTML zu suchen:
var $form = $('#' + DynamicValueAssignedHere).find('form'); var formData = $form.serializeArray(); var myFieldName = 'FirstName'; var myFieldFilter = function (field) { return field.name == myFieldName; } var value = formData.filter(myFieldFilter)[0].value;
quelle
$("form").submit(function(event) { var firstfield_value = event.currentTarget[0].value; var secondfield_value = event.currentTarget[1].value; alert(firstfield_value); alert(secondfield_value); event.preventDefault(); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form action="" method="post" > <input type="text" name="field1" value="value1"> <input type="text" name="field2" value="value2"> </form>
quelle
Wenn Sie die ID der Eingänge kennen, müssen Sie nur diese verwenden:
var value = $("#inputID").val();
quelle
var textValue = $("input[type=text]").val()
Dadurch werden alle Werte aller Textfelder abgerufen. Sie können Methoden wie Kinder, Erstkinder usw. verwenden, um sie zu verbessern. Wie bei Formular $ ('form [name = form1] input [type = text]') Einfachere Verwendung von IDs für das Targeting von Elementen, aber wenn es rein dynamisch ist, können Sie alle erhalten Eingabewerte durchlaufen dann mit JS.
quelle
Sie können diese Zeilen ausprobieren:
$("#DynamicValueAssignedHere .formdiv form").contents().find("input[name='FirstName']").prevObject[1].value
quelle
Sie können jeden Eingabefeldwert von erhalten
$('input[fieldAttribute=value]').val()
Hier ist ein Beispiel
displayValue = () => { // you can get the value by name attribute like this console.log('value of firstname : ' + $('input[name=firstName]').val()); // if there is the id as lastname console.log('value of lastname by id : ' + $('#lastName').val()); // get value of carType from placeholder console.log('value of carType from placeholder ' + $('input[placeholder=carType]').val()); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="formdiv"> <form name="inpForm"> <input type="text" name="firstName" placeholder='first name'/> <input type="text" name="lastName" id='lastName' placeholder='last name'/> <input type="text" placeholder="carType" /> <input type="button" value="display value" onclick='displayValue()'/> </form> </div>
quelle