Ajax;选中3个项目后,JavaScript多选onchange失败
Ajax & JavaScript Multiple Select onchange failing after 3 selected items
我有一个带有以下代码的选择输入:
<select name="color" id="color" multiple class="form-control chzn-select" tabindex="8" onchange="autosave(this.id,this.value)">
它成功地发送了函数ID和选择值,但由于可以选择多个项目,因此出现了问题。我最多可以选择3个项目,但尝试选择第4个项目会导致它超过第一个选择项目的值。不是最近选择的项目。这是一个功能,它发送其他信息,如标题和日期(都是文本输入):
function autosave(inputid,values) {
var dataObj = {};
dataObj[inputid] = values;
$.ajax({
type: "POST",
url: "save.php",
data: dataObj,
success: function(msg) {
$('#autosavenotify').text(msg);
console.log('success');
}
})
}
在HTML方面,如果有区别的话,我会使用Bootstrap3,下面是我如何填充选择选项:
<?php
$colors = array('Red','Blue','Yellow','Purple','Green','Orange');
foreach($colors as $c) {
$selected = '';
if(in_array($c, $_SESSION['array']['colors'])) {
$selected = 'selected';
}
echo '<option value="'.$c.'" '.$selected.'>'.$c.'</option>';
}
?>
你知道为什么会发生这种事吗?我的save.php页面成功地将所有项目放置在数组中,ajax只是出于某种原因发送了不正确的值。
因为您已经在使用jQuery,所以最好只使用$(this).val( )
从您的选择中获取所选选项。这是我用你提供的代码想出的一把小提琴:http://jsfiddle.net/y7NfF/1/
您可能考虑采用的另一种方法是使用jQuery的.serialize()
或.serializeArray()
函数,在通过ajax提交数据时获取表单的所有值。但是,如果您想一次处理一个元素,那么您的方法就可以正常工作。
以下是这些功能的几个链接:
http://api.jquery.com/serialize/
http://api.jquery.com/serializeArray/
相关文章:
- 当使用jQuery/Javascript选择一个多选时,如何使所有值都不被选中:
- 如何使用javascript编写多选代码
- 如何使用javaScript进行多选
- 使用Javascript隐藏多选框中的选项
- Ajax;选中3个项目后,JavaScript多选onchange失败
- 如何在多选选择框后调用javascript方法
- 使用 javascript 创建多选表单
- 我有一个 HTML 多选框,之前没有选择任何内容.我需要验证是否应该在 javascript 中至少选择一个
- 多选插件 jquery 不适用于 javascript
- jQuery / JavaScript 复选框显示多个和单个选择中选中的复选框的数量
- 使用 javascript 循环访问相同的多选下拉列表
- 如何使用jQuery/javascript在下拉列表(多选)中设置数组对象的值
- Javascript:多步骤表单,带复选框,显示所需的隐藏字段
- 如何在 Javascript 中删除多选选项列表中的重复值
- javascript多复选框验证
- 如何使用javascript存储多选字段中的多个值
- 访问ZF2使用javascript创建了多选框
- 用javascript创建多选选项
- 想要用谷歌分析标记一个多选表单-需要JavaScript指导
- 升级到.net 3.5后,列表框Javascript多选功能失效