Javascript Jquery获取表单字段值

Javascript Jquery获取表单字段值,javascript,jquery,Javascript,Jquery,我使用jquery模板在同一页面上动态生成多个元素。每个元素看起来像这样 <div id ="DynamicValueAssignedHere"> <div class="something">Hello world</div> <div class="formdiv"> <form name="inpForm"> <input type="text" name="First

我使用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>
以类似的方式,我希望能够检索textbox的值。现在,我试过了

var text = $(#DynamicValueAssignedHere).children(".formdiv").findnext('input[name="FirstName"]').val();

但它似乎不起作用

它可以比你正在做的事情简单得多

HTML:


您必须使用
值属性
来获取其值

<input type="text" name="FirstName" value="First Name" />

如果您知道输入的id,则只需使用:

var value = $("#inputID").val();
这将获取所有文本框的所有值。您可以使用诸如children、firstchild等方法来磨练。形似 $('form[name=form1]input[type=text]')
更容易使用ID来定位元素,但如果它是纯动态的,则可以获取所有输入值,然后使用JS进行循环。

另一种方法,无需搜索字段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;
$(“表单”).submit(函数(事件){
var firstfield_value=event.currentTarget[0]。值;
var secondfield_value=event.currentTarget[1]。值;
警报(第一个字段值);
警报(第二个字段值);
event.preventDefault();
});

您可以尝试以下几行:

$("#DynamicValueAssignedHere .formdiv form").contents().find("input[name='FirstName']").prevObject[1].value

您可以通过以下方式获取任何输入字段值:
$('input[fieldAttribute=value]')。val()

这里有一个例子

displayValue=()=>{
//您可以像这样按名称获取值属性
log('firstname的值:'+$('input[name=firstname]')).val();
//如果有作为lastname的id
log('lastname的id值:'+$('#lastname').val());
//从占位符获取carType的值
log('占位符'+$('input[placeholder=carType]')中的carType值。).val();
}


我不能为字段使用ID,因为我的页面可以包含具有相同元素的多个表单(我使用的是jquery repeater模板)@curiouspanda:好的,所以您可以使用Dipaks aproach来实现这一点。即使使用转发器模板,我认为您也可以使用唯一的id,也许可以为每个字段集组件id设置前缀。@curiouspanda动态id有什么共同点吗?这应该是答案。更干净。如果我能从其他页面的表单中获取值呢?@curiouspanda:只是一个提示。如果“name”值是唯一的,则不需要使用$(“#DynamicValueAssignedHere”)。只需直接使用$('input[name=“FirstName”]').val()即可。我仍然喜欢使用ID来处理组件。@davidbuzatto-Name值不是唯一的。只有最外层div的ID是唯一的。Dipaks的解决方案还是有效的。这里有一些信息和一把小提琴,简单的javascript可能更容易:
$('input')[0]。form.FirstName.value
将访问字段的值,而这个代码片段可以解决这个问题,确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满您的代码,因为这会降低代码和解释的可读性!
var text = $('#DynamicValueAssignedHere').find('input[name="FirstName"]').val();
var value = $("#inputID").val();
var textValue = $("input[type=text]").val()
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;
$("#DynamicValueAssignedHere .formdiv form").contents().find("input[name='FirstName']").prevObject[1].value