获取div中的所有输入以进行ajax请求

发布于 2024-11-07 11:04:55 字数 773 浏览 0 评论 0原文

我正在尝试获取所有输入文本框、单选按钮组、复选框等。我在获取选定的单选按钮和复选框值时遇到问题,我无法弄清楚。

我可以获得文本框,但似乎无法在正确的位置获得“选定”。目前它只是获取单选/复选框的第一个值而不是选定的值。

$('#form_1 input').each(function(key)               
    formData += '&'+$('#'+this.id).attr('name')+'='+$('#'+this.id).val();   
});

谢谢

已编辑

$('#form_1 input').each(function(key, value) {              
    if ((this.type === "radio" || this.type === "checkbox") && this.checked === true) {
         val = this.value;
    } else {
         val = this.value;
    }

    alert($('#'+this.id).attr('name') + ' = ' + val);
    formData += '&'+$('#'+this.id).attr('name')+'='+val;    
});

好的,现在我得到了收音机等的所有价值,所以我又近了一步。现在只需要获取所选无线电的值即可。

谢谢

I am trying to get all input textboxes, radio groups, checkboxes etc. I am having trouble getting the selected radio and checkboxs values, I cant figure it out.

I can get the text boxes but can't seem to get the "selected" in the right place. At the moment it just gets the first value for radio/checkboxes not the selected value.

$('#form_1 input').each(function(key)               
    formData += '&'+$('#'+this.id).attr('name')+'='+$('#'+this.id).val();   
});

Thanks

EDITED

$('#form_1 input').each(function(key, value) {              
    if ((this.type === "radio" || this.type === "checkbox") && this.checked === true) {
         val = this.value;
    } else {
         val = this.value;
    }

    alert($('#'+this.id).attr('name') + ' = ' + val);
    formData += '&'+$('#'+this.id).attr('name')+'='+val;    
});

Ok now I get every value for radios etc so I am a step closer. Just need to get the values of selected radios now.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

丶情人眼里出诗心の 2024-11-14 11:04:55

只需使用 serialize()[docs] 方法。

它将负责为您获取所选元素的值。

var formData = $('#form_1').serialize();

来自文档:

.serialize() 方法可以作用于已选择单个表单元素(例如 、 和 )的 jQuery 对象。但是,选择标签本身进行序列化通常更容易:

$('form').submit(function() {
  警报($(这个)。序列化());
  返回假;
});

这会生成一个标准的查询字符串:

a=1&b=2&c=3&d=4&e=5

Just use the serialize()[docs] method.

It will take care of getting the values of the selected elements for you.

var formData = $('#form_1').serialize();

From the docs:

The .serialize() method can act on a jQuery object that has selected individual form elements, such as , , and . However, it is typically easier to select the tag itself for serialization:

$('form').submit(function() {
  alert($(this).serialize());
  return false;
});

This produces a standard-looking query string:

a=1&b=2&c=3&d=4&e=5
情定在深秋 2024-11-14 11:04:55
var val;
if (this.type === "radio" || this.type === "checkbox") {
     val = this.checked;
} else {
     val = this.value;
}

对于单选按钮和复选框,您关心的是选中的属性。

更新

您编写了

(this.type === "radio" || (this.type === "checkbox" && this.checked === true))

你的意思是

((this.type === "radio" || this.type === "checkbox") && this.checked === true)

你需要这些括号在正确的地方。

进一步编辑

逻辑有点混乱。

基本上就是你想要的。

if ((this.type === "radio" || this.type === "checkbox") && this.checked === false) {
    return;
}

这意味着如果它是一个未选中的单选/复选框,则您什么也不做。

var val;
if (this.type === "radio" || this.type === "checkbox") {
     val = this.checked;
} else {
     val = this.value;
}

For radios and check boxes you care about the checked attribute.

Update

You wrote

(this.type === "radio" || (this.type === "checkbox" && this.checked === true))

You meant

((this.type === "radio" || this.type === "checkbox") && this.checked === true)

You need those brackets in the right place.

Further edit

The logic was a bit broken.

Basically what you want.

if ((this.type === "radio" || this.type === "checkbox") && this.checked === false) {
    return;
}

This means if its a non-checked radio/checkbox you do nothing.

尸血腥色 2024-11-14 11:04:55

这并没有直接回答您的问题,但看起来您正在尝试实现已经可用的东西 - 您可能想查看 serialize() - 将其用作 var formData = $('#form_1').serialize()

This doesn't answer your question directly but it looks like you're trying achieve something that's already available - you might want to check out serialize() - use it as var formData = $('#form_1').serialize()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文