javascript - 如何在提交表单之前获取JSON中的表单所有元素值

标签 javascript jquery html server forms

我将表单名称设置为 JSON 以获取 JSON 中的数据。当我提交 HTML 表单以提供服务时,它工作正常,但是当我在提交之前获取数据时,我无法获取正确的数据。

所有 HTML 呈现动态,因此没有固定的 xy 值。这是同一个演示。

function validateData(){
	var isValidate = false;
	console.log($('form').serializeArray());
	console.log($('form').serialize());
	return isValidate;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form onsubmit="return validateData();" action="./send" method="post">
	<input type="hidden" name="a[x][Id]" value="hello x">
	<input type="radio" name="a[x][istest]" value="true"> Yes
	<input type="radio" name="a[x][istest]" value="false"> No
	<textarea name="a[x][msg]"></textarea>
	<input type="hidden" name="a[y][Id]" value="hello y">
	<input type="radio" name="a[y][istest]" value="true"> Yes
	<input type="radio" name="a[y][istest]" value="false"> No
	<textarea name="a[y][msg]"></textarea>
	<input type="hidden" name="id" value="hello form">
	<input type="submit" value="Submit "/>
</form>

我 jQuery 返回以下结果

JQuery Result

当我检查服务器时,它正在发送正确的 JSON

{ a:
   { x: { Id: 'hello x',istest : 'true', msg: '' },
     y: { Id: 'hello y',istest : 'false', msg: '' } },
  id: 'hello form' }

我做了很多搜索,但没有得到正确的答案。

最佳答案

我自定义了 JSON,它返回我想要的相同 JSON。

var formValues = $('form').serializeArray();

var formJSON = {};
formValues.map(function(index, value){
    var name = index.name;
    name = name.replace(/\[/g,',');
    name = name.replace(/\]/g,'');
    name = name.split(',');
    if(name.length == 3){
        if(formJSON[name[1]] != undefined)
            formJSON[name[1]][name[2]] = index.value;
        else
            formJSON[name[1]] = {[name[2]] :index.value};
    }
});

console.log(formJSON);

关于javascript - 如何在提交表单之前获取JSON中的表单所有元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812602/

相关文章:

javascript - 为特定的 div 生成输入元素

jquery - 通过使用 jQuery 排除其他 div 来从 div 获取 HTML

html - 从div中切出的透明半圆

javascript - Ionic ng-hide/ng-show 滚动问题

javascript - meteor :ReferenceError:要求未定义

javascript - 选择音频上下文目标输出

Javascript 检测地址栏中 # 后的变量更改

javascript - rails 4 : calling ruby extra class methods on user input with JavaScript/jQuery

html - CSS - 背景图片不显示

javascript - 如何在正文末尾的 ELEMENTOR 脚本之后加载我的脚本