我正在开发小型MVC应用程序,即“发送电子邮件”,在开始时,我只使用下拉菜单来选择一个接收器,但之后,我在dropdownList中添加了多个类,当我选择2-3个接收器时,当我尝试调试这个代码时,我只使用了一个接收器:
$("#SubmitEmail").click(function () {
var Receiver = $('#ReceiverID').val();
var Subject = $('#subject').val();
var Body = $('#content').val();
var obj = { 'Receiver': Receiver, 'Subject': Subject, 'Body': Body };
SendEmail(obj);
});我意识到,我以前用来存储var Receiver的receiverId成了一个数组,我想知道javascript是如何适应cooooool的,所以它认识到我在那里选择了几个项目,它变成了一个数组,所以我简单地循环了它(修改了我的代码):
$("#SubmitEmail").click(function () {
var Receivers = $('#ReceiverID').val();
for (var i = 0; i < Receivers.length; i++) {
var Receiver = Receivers[i];
var Subject = $('#subject').val();
var Body = $('#content').val();
var obj = { 'Receiver': Receiver, 'Subject': Subject, 'Body': Body };
}
SendEmail(obj);
});一切都很酷,所以我只是想知道为什么js知道这一切?
发布于 2017-06-05 00:36:43
当集合中的第一个元素是select-multiple (即select元素和多个属性集)时,.val()返回一个数组,其中包含每个选定选项的值。
这实际上是jQuery魔术,而不是JavaScript魔术。
您可以看到val() 这里的实际源代码。它是一个函数,调用select元素的select,它实际上对所选的选项执行一个循环。
发布于 2017-06-05 00:35:59
正如您所述,Javascript很酷,但在本例中,它实际上是Jquery实现灵活性,它返回对象数组以供下拉。详情请参见http://api.jquery.com/val/。
发布于 2017-06-05 00:36:24
这就是jQuery的工作方式。请参见.val()函数:
此示例向下滚动:
从单个select获取单个值,从多个select获取一个值数组,并显示它们的值。
https://stackoverflow.com/questions/44360192
复制相似问题