简体   繁体   English

使用 jQuery 访问多个输入字段值

[英]Access multiple input field values with jQuery

How do you access multiple input field values using jQuery?如何使用 jQuery 访问多个输入字段值? I've fiddled with .serialize() and .formSerialize() but those are not working for me.我摆弄过 .serialize() 和 .formSerialize() 但这些对我不起作用。

Current Form Setup当前表单设置

<form class="user__inputs hidden" id="user__activity__input">
  <label class="user__labels" id="userSteps" for="userStepsInput">Number of Steps:</label><br>
  <input aria-labelledby="userSteps" type="number" min="0" id="number__of__steps" name="userStepsInput" placeholder="Enter Steps.."><br>
  <label class="user__labels" id="userActive" for="userStepsInput">Active Minutes:</label><br>
  <input aria-labelledby="userActive" type="number" min="0" id="active__minutes" name="userStepsInput" placeholder="Enter Minutes..">
  <label class="user__labels" id="userStairs" for="userStepsInput">Flight of Stairs:</label><br>
  <input aria-labelledby="userStairs" type="number" min="0" id="flights_stairs" name="userStepsInput" placeholder="Enter Flights..">
  <input type="submit" for="userStepsInput" value="Submit" onchange="runThis()">
</form>

Current jQuery Attempt This was to see if I can even get access to my entered values.当前的 jQuery 尝试这是为了看看我是否甚至可以访问我输入的值。

function runThis() {
  console.log($('#user__activity__input').serialize())
}

It's always good practice to keep your HTML and JavaScript separate.HTMLJavaScript分开始终是一个好习惯。 If all you want is to be able to see you input values you can use the following setup.如果您只想看到输入的值,可以使用以下设置。

 $(function() { $('#user__activity__input').on('submit', runThis); }); function runThis(e) { e.preventDefault(); console.log($(this).serialize()); //or validate the data before submitting it as follows: //this.submit(); }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form class="user__inputs hidden" id="user__activity__input"> <label class="user__labels" id="userSteps" for="userStepsInput">Number of Steps:</label><br> <input aria-labelledby="userSteps" type="number" min="0" id="number__of__steps" name="userStepsInput" placeholder="Enter Steps.."><br> <label class="user__labels" id="userActive" for="userStepsInput">Active Minutes:</label><br> <input aria-labelledby="userActive" type="number" min="0" id="active__minutes" name="userStepsInput" placeholder="Enter Minutes.."> <label class="user__labels" id="userStairs" for="userStepsInput">Flight of Stairs:</label><br> <input aria-labelledby="userStairs" type="number" min="0" id="flights_stairs" name="userStepsInput" placeholder="Enter Flights.."> <input type="submit" for="userStepsInput" value="Submit"> </form>

PeterKA has a good solution to get you moving. PeterKA 有一个很好的解决方案来让你动起来。

To build on their answer, this will help you when dealing with the data.以他们的回答为基础,这将有助于您处理数据。 It would be best to change the for= and respective name= to unique values per label/input set.最好将for=和各自的name=更改for=每个标签/输入集的唯一值。 Then any backend you send this form to will be able to understand what each value is.然后,您将此表单发送到的任何后端都将能够理解每个值是什么。

Example:例子:
Label: for="userStepsInput"标签: for="userStepsInput"
Input: name="userStepsInput"输入: name="userStepsInput"

Label: for="userMinutesInput"标签: for="userMinutesInput"
Input: name="userMinutesInput"输入: name="userMinutesInput"

Label: for="userFlightsInput"标签: for="userFlightsInput"
Input: name="userFlightsInput"输入: name="userFlightsInput"

This should then return userStepsInput=3&userMinutesInput=4&userFlightsInput=3 rather than the ambiguous userStepsInput=8&userStepsInput=4&userStepsInput=3然后这应该返回userStepsInput=3&userMinutesInput=4&userFlightsInput=3而不是模棱两可的userStepsInput=8&userStepsInput=4&userStepsInput=3

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM