我正在处理小型MVC
应用程序,即#34;发送电子邮件",并且在开始时我使用下拉列表仅选择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);
});
我意识到我曾经存储过receiverId的var Receiver
成为一个阵列,并且我想知道为什么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怎么知道这一切?
答案 0 :(得分:1)
当集合中的第一个元素是选择倍数(即a 使用多个属性集选择元素,.val()返回一个 数组包含每个所选选项的值。
所以它实际上是jQuery魔术,而不是JavaScript魔术。
您可以查看val()
here的实际源代码。它是一个调用select
元素的get
hook的函数,它实际上对选定的选项进行循环。
答案 1 :(得分:0)
Javascript很酷,因为你说,但在这个例子中,它实际上是一个Jquery实现灵活性,它返回下拉列表的对象数组。有关详细信息,请参阅http://api.jquery.com/val/。
答案 2 :(得分:0)