我正在使用jquery模板在同一页面上动态生成多个元素。每个元素都是这样的
<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>
我想使用Jquery来处理提交表单。如果出现问题,我还想将表单值恢复为之前的值。我的问题是 如何使用Jquery获取输入框的值?例如,通过执行
,我可以通过类“某事”获得div的值var something = $(#DynamicValueAssignedHere).children(".something").html();
以类似的方式,我希望能够检索文本框的值。现在,我试过
var text = $(#DynamicValueAssignedHere).children(".formdiv").findnext('input[name="FirstName"]').val();
但它似乎没有工作
答案 0 :(得分:126)
您必须使用value attribute
来获取其值
<input type="text" name="FirstName" value="First Name" />
尝试 -
var text = $('#DynamicValueAssignedHere').find('input[name="FirstName"]').val();
答案 1 :(得分:49)
它可能比你正在做的简单得多。
HTML:
<input id="myField" type="text" name="email"/>
JavaScript的:
// getting the value
var email = $("#myField").val();
// setting the value
$("#myField").val( "new value here" );
答案 2 :(得分:6)
另一种方法,无需搜索字段html:
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;
答案 3 :(得分:2)
如果你知道输入的id,你只需要使用它:
var value = $("#inputID").val();
答案 4 :(得分:2)
var textValue = $("input[type=text]").val()
这将获得所有文本框的所有值。您可以使用像children,firstchild等方法来磨练。像表单一样 $('form [name = form1] input [type = text]') 更容易使用ID作为目标元素,但如果它是纯动态的,你可以获得所有输入值然后循环使用JS。
答案 5 :(得分:1)
$("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();
});
&#13;
<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>
&#13;
答案 6 :(得分:1)
// for getting the value from input type text
var value = $("input[type=text]").val();
// for getting the value from by input type name
var textValue = $("input[name=text]").val()
答案 7 :(得分:1)
您可以通过以下方式获取任何输入字段值
$('input[fieldAttribute=value]').val()
这是一个例子
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>
答案 8 :(得分:0)
您可以尝试以下行:
$("#DynamicValueAssignedHere .formdiv form").contents().find("input[name='FirstName']").prevObject[1].value