我有一个问题.如何打印/显示在控制台所有的输入值,选择的选项,复选框和单选框从表单提交?在stackoverflow上搜索,但找不到解决方案。
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元素,并根据类型、名称和值写出不同的信息
:input
Demo
<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>
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,类,其他选择器)。如果你不关心元素的实际类型,也不想在控制台中显示它,那么这个建议将被记录下来:
<your_form_identifier>
$(this).serialize()
name=value&name2=value2...
$(this).serializeArray()
如果你没有使用 AJAX 来提交表单,并且实际上正在重新加载页面,那么这个建议(以及@CarstenLøvboAndersen的建议)将无法让你看到正在提交的内容,除非你用e.preventDefault()之类的东西中断提交。
e.preventDefault()
2条答案
按热度按时间krugob8w1#
你可以这样做:
这将“检测”所有
:input
元素,并根据类型、名称和值写出不同的信息Demo
z18hc3ub2#
假设您通过 AJAX 提交表单,并且您的表单不会导致页面重新加载,一种方法(除了@CarstenLøvboAndersen建议的方法)可以是:
其中
<your_form_identifier>
是你......好吧,识别表单(ID,类,其他选择器)。如果你不关心元素的实际类型,也不想在控制台中显示它,那么这个建议将被记录下来:
$(this).serialize()
-一个字符串,以name=value&name2=value2...
的形式表示所有提交的表单元素(选中的复选框,选中的单选按钮等)$(this).serializeArray()
-与第一个类似,但作为数组,而不是字符串如果你没有使用 AJAX 来提交表单,并且实际上正在重新加载页面,那么这个建议(以及@CarstenLøvboAndersen的建议)将无法让你看到正在提交的内容,除非你用
e.preventDefault()
之类的东西中断提交。