Javascript Ctrl键选择多个项目并通过表单发布访问

Javascript Ctrl键选择多个项目并通过表单发布访问,javascript,jquery,forms,post,Javascript,Jquery,Forms,Post,我有一个表单,其中显示了一个日期列表——用户单击某一天,我使用jQuery填充一个隐藏字段,然后我可以在post数组中引用该值 我现在想允许用户使用Ctrl+Click选择多个项目,然后能够访问post数组中的所有选定选项,但不确定如何操作 我已经知道如何允许选择多个项目,但我无法知道如何通过post访问此项目,因为我当前的代码只包含隐藏字段中最后单击的项目 以下是我目前正在使用的内容: var multiple = false; $(document).on('keyup keydown',

我有一个表单,其中显示了一个日期列表——用户单击某一天,我使用jQuery填充一个隐藏字段,然后我可以在post数组中引用该值

我现在想允许用户使用Ctrl+Click选择多个项目,然后能够访问post数组中的所有选定选项,但不确定如何操作

我已经知道如何允许选择多个项目,但我无法知道如何通过post访问此项目,因为我当前的代码只包含隐藏字段中最后单击的项目

以下是我目前正在使用的内容:

var multiple = false;
$(document).on('keyup keydown', function(e) {
  multiple = e.ctrlKey;
});

$(document).ready(function () {
    $(document).on('click', '[name="day"]', function () {
        if (multiple) {
            $('[name="date"]').val($(this).text());
            $(this).addClass('selected');
        } else {
            $('[name="day"]').removeClass('selected');
            $('[name="date"]').val($(this).text());
            $(this).addClass('selected');
        }
    });
});

您当前使用的是
$('[name=“date”]').val($(this.text()),这意味着每次单击日期时都会替换输入中的值

相反,您应该附加到输入中,并用逗号等分隔每个值

因此,改变:

$('[name="date"]').val($(this).text());
致:

额外的
$('[name=“date”]').val()
只意味着添加到当前值

我已经删除了示例中输入的“hidden”,因此您可以看到我的意思():

var multiple=false;
$(文档).on('keyup-keydown',函数(e){
多重=e.ctrlKey;
});
$(文档).ready(函数(){
$(文档)。在('click','name=“day”]'上,函数(){
如果(多个){
$('[name=“date”]').val($('[name=“date”]').val()+,'+$(this.text());
$(this.addClass('selected');
}否则{
$('[name=“day”]')。removeClass('selected');
$('[name=“date”]').val($(this.text());
$(this.addClass('selected');
}
});
});
。已选定{
背景色:红色;
颜色:白色;
}
.基地{
浮动:左;
高度:40px;
宽度:40px;
右边距:10px;
填充:10px;
边框:1px实心;
光标:指针;
文本对齐:居中;
边界半径:5px;
字体大小:10px;
}


周一
2015年10月5日 星期二
2015年10月6日 结婚
2015年10月7日 清华大学
2015年10月8日 星期五
2015年10月9日 坐
2015年10月10日 太阳
2015年10月11日
仅供参考,您的代码在OSX上会导致问题,按住CTRL键并单击会打开关联菜单。很好,这里的PC用户没有看到该问题-此代码尚未激活,因此感谢您指出
$('[name="date"]').val($('[name="date"]').val() + ',' + $(this).text());