Jquery获取表单字段值

68 javascript jquery

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

我想使用Jquery来处理提交表单.如果出现问题,我还想将表单值恢复为之前的值.我的问题是如何使用Jquery获取输入框的值?例如,我可以通过执行类来获取div的值

var something = $(#DynamicValueAssignedHere).children(".something").html();
Run Code Online (Sandbox Code Playgroud)

以类似的方式,我希望能够检索文本框的值.现在,我试过了

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

但它似乎没有起作用

Dip*_*pak 128

你必须用来value attribute获得它的价值

<input type="text" name="FirstName" value="First Name" />
Run Code Online (Sandbox Code Playgroud)

尝试 -

var text = $('#DynamicValueAssignedHere').find('input[name="FirstName"]').val();
Run Code Online (Sandbox Code Playgroud)

  • @curiouspanda:只是小费.如果"name"值是唯一的,则不需要使用$('#DynamicValueAssignedHere').只需直接使用$('input [name ="FirstName"]').val().我仍然更喜欢使用id来处理组件. (7认同)
  • @davidbuzatto - 名称值不是唯一的.只有最外层div的ID才是唯一的.Dipaks解决方案虽然有效. (3认同)

dav*_*tto 51

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

HTML:

<input id="myField" type="text" name="email"/>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

// getting the value
var email = $("#myField").val();

// setting the value
$("#myField").val( "new value here" );
Run Code Online (Sandbox Code Playgroud)


Luc*_*ops 8

另一种方法,无需搜索字段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;
Run Code Online (Sandbox Code Playgroud)