作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如每个开发人员所希望的那样,我想让我的代码变得简短。但有道理。
我有一个编辑个人资料字段,其中包含多个字段,大约 10 个文本框和 2 个单选按钮。
在一个简单的登录表单中,我可以像这样获取用户名和密码的值:
$("#username")
和 $("#password")
并将它们分别分配到变量 username
password
中,
那会变成这样:(用ajax)
$.ajax({
url : some_url,
data: {
username : username,
password : password
success : something
}
});
但是如果我有几个字段怎么办,我不希望我的代码非常困惑,有所有这些分配。
所以我想出了一个想法,即拥有一个基于输入 ID 的键值对
var object;
$("#formUpdate:input").each(function(){
var key = $(this).attr('id');
var value = $(this).val();
object.key = value;
});
问题,我错过了什么,但我无法让它工作,有没有更好的方法来做到这一点。您认为硬编码它更好吗?
非常感谢大家!顺便说一句,今天是我的生日。
最佳答案
您使用了错误的语法向对象添加动态键。您需要括号符号["string"]
var obj = {};
$("#formUpdate :input").each(function(){
var key = $(this).attr('id');
var val = $(this).val();
obj[key] = val;
});
虽然你应该能够这样做:
var obj = $("#formUpdate").serialzeArray();
假设您的输入也有名称属性。
编辑:您的输入选择器中还缺少一个空格。
关于jquery - 使用 jquery every 从表单获取值并将其作为 ajax 请求发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13126892/
我是一名优秀的程序员,十分优秀!