我正在开发一个小型的“ cc”应用程序,该应用程序是“发送电子邮件”,一开始我使用下拉菜单仅选择了1个接收器,但是之后我将多个类添加到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);
});


我意识到曾经用来存储接收器ID的MVC准确地变成了一个数组,我想知道javascript是如何适应soo 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怎么知道这一切?

最佳答案

jQuery docs on val()


  当集合中的第一个元素为select-multiple时(即
  select元素(设置了multiple属性),. val()返回一个
  包含每个选定选项的值的数组。


因此,实际上是jQuery魔术,而不是JavaScript魔术。

您可以看到val() here的实际源代码。这个函数调用get元素的select hook,实际上在选定的选项上循环。

07-24 09:47
查看更多