jquery 在控制台中打印所有值、选项、选中的复选框和单选框

vc6uscn9  于 2023-04-20  发布在  jQuery
关注(0)|答案(2)|浏览(196)

我有一个问题.如何打印/显示在控制台所有的输入值,选择的选项,复选框和单选框从表单提交?
在stackoverflow上搜索,但找不到解决方案。

krugob8w

krugob8w1#

你可以这样做:

$(document).ready(function() {
  $("#myForm").submit(function(event) {
    event.preventDefault();
    $(this).find(":input").each(function() {
      var inputType = $(this).attr("type");
      var inputName = $(this).attr("name");
      var inputValue = $(this).val();
      if (inputType === "checkbox" || inputType === "radio") {
        inputValue = $(this).is(":checked") ? "Yes" : "No";
      }
      console.log(inputName + ": " + inputValue);
    });
  });
});

这将“检测”所有:input元素,并根据类型、名称和值写出不同的信息

Demo

$(document).ready(function() {
  $("#myForm").submit(function(event) {
    event.preventDefault();
    $(this).find(":input").each(function() {
      var inputType = $(this).attr("type");
      var inputName = $(this).attr("name");
      var inputValue = $(this).val();
      if (inputType === "checkbox" || inputType === "radio") {
        inputValue = $(this).is(":checked") ? "Yes" : "No";
      }
      console.log(inputName + ": " + inputValue);
    });
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myForm">
  <label for="name">Name:</label>
  <input type="text" id="name" name="name"><br><br>

  <label for="email">Email:</label>
  <input type="email" id="email" name="email"><br><br>

  <label for="age">Age:</label>
  <input type="number" id="age" name="age"><br><br>

  <label for="gender">Gender:</label>
  <select id="gender" name="gender">
    <option value="male">Male</option>
    <option value="female">Female</option>
    <option value="other">Other</option>
  </select><br><br>

  <label for="newsletter">Subscribe to newsletter:</label>
  <input type="checkbox" id="newsletter" name="newsletter" value="yes"><br><br>

  <input type="submit" value="Submit">
</form>
z18hc3ub

z18hc3ub2#

假设您通过 AJAX 提交表单,并且您的表单不会导致页面重新加载,一种方法(除了@CarstenLøvboAndersen建议的方法)可以是:

$("<your_form_identifier>").on("submit",function() {
    var ser = $(this).serialize();
    var serArr = $(this).serializeArray();

    console.log(ser);
    console.log(serArr);
});

其中<your_form_identifier>是你......好吧,识别表单(ID,类,其他选择器)。
如果你不关心元素的实际类型,也不想在控制台中显示它,那么这个建议将被记录下来:

  • $(this).serialize()-一个字符串,以name=value&name2=value2...的形式表示所有提交的表单元素(选中的复选框,选中的单选按钮等)
  • $(this).serializeArray()-与第一个类似,但作为数组,而不是字符串

如果你没有使用 AJAX 来提交表单,并且实际上正在重新加载页面,那么这个建议(以及@CarstenLøvboAndersen的建议)将无法让你看到正在提交的内容,除非你用e.preventDefault()之类的东西中断提交。

相关问题