我在MVC中有一个大(ish)形式.
我需要能够生成包含该表单子集中的数据的excel文件.
棘手的一点是,这不应该影响表单的其余部分,所以我想通过AJAX来做.我在SO上遇到了几个似乎有关的问题,但我无法弄清楚答案的意思.
这个似乎最接近我所追求的:asp-net-mvc-downloads-excel - 但我不确定我理解这个反应,现在已经有几年了.我还看到了另一篇关于使用iframe处理文件下载的文章(找不到了),但我不知道如何使用MVC.
我的excel文件返回正常,如果我正在做一个完整的帖子回来但我不能让它在mvc中使用AJAX.
selectorjQuery on()方法的目的是什么?
在什么情况下
$("#fish").on("click", ".button", function() {
// something
});
Run Code Online (Sandbox Code Playgroud)
比说更好
$("#fish").find(".button").on("click", function() {
// something
});
Run Code Online (Sandbox Code Playgroud)
?
我查看了jQuery文档,发现:
如果省略selector或为null,则事件处理程序称为直接或直接绑定.每次在所选元素上发生事件时都会调用该处理程序,无论它是直接发生在元素上还是来自后代(内部)元素的气泡.
提供选择器时,事件处理程序称为委托.当事件直接发生在绑定元素上时,不会调用处理程序,但仅适用于与选择器匹配的后代(内部元素).jQuery将事件从事件目标起泡到附加处理程序的元素(即最里面到最外层的元素),并为匹配选择器的路径上的任何元素运行处理程序.
我是否正确地说,不同之处在于,在我的第一个例子中,事件是绑定的#fish,但只监听从中冒出的事件.buttons,而在第二个例子中,事件绑定到每个.buttons?如果是这样,这有什么影响?:S
因此,如果事件绑定到#fish,当您单击.button时,无论如何都知道单击了哪个.button?这将引用#fish而不是.button,对吗?
假设我在数据库中有一个列,其中包含以逗号分隔的 ID 列表(请不要问为什么 :( ),即像这样的列:
id | ids
----------
1 | 1,3,4
2 | 2
3 | 1,2,5
Run Code Online (Sandbox Code Playgroud)
以及 ids 相关的表:
id | thing
---------------
1 | fish
2 | elephant
3 | monkey
4 | mongoose
5 | kiwi
Run Code Online (Sandbox Code Playgroud)
如何根据第一个表中的 id 选择逗号分隔的事物列表?例如,选择 1 会给我,,'fish,monkey,mongoose'3 会给我'fish,elephant,kiwi'等等?
谢谢!
我确信这不是第一次被问到,但我能找到的唯一类似的事情是/sf/ask/1224059721/和它没有回答我的问题。
我有一个选择:
<select class="myClass" multiple="multiple" size="3" disabled="disabled">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
除了在手机/平板电脑上的 Chrome 上之外,这显示得很好 - 其中大小被忽略并显示在一行中。对于一般用途来说,这对我来说很好,但我需要能够在禁用的选择(上面)中显示一些选定的值,在这种情况下,仅显示第一个选定的选项,无法扩展选择。
它在我的平板电脑上的 Firefox 上显示良好,始终显示所有行。
有什么办法让chrome遵循这种行为吗?
假设我在JavaScript中有一个字符串,如下所示:
var str = "Item%5B9%5D.Something%5B0%5D.Prop1=1&Item%5B9%5D.Something%5B0%5D.Prop2=False&Item%5B9%5D.Something%5B0%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Item%5B9%5D.Something%5B1%5D.Prop1=2&Item%5B9%5D.Something%5B1%5D.Prop2=False&Item%5B9%5D.Something%5B1%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Item%5B9%5D.Something%5B2%5D.Prop1=3&Item%5B9%5D.Something%5B2%5D.Prop2=False&Item%5B9%5D.Something%5B2%5D.Prop3=29%2F04%2F2013+00%3A00%3A00&Item%5B9%5D.Something%5B3%5D.Prop1=4&Item%5B9%5D.Something%5B3%5D.Prop2=False&Item%5B9%5D.Something%5B3%5D.Prop3=29%2F04%2F2013+00%3A00%3A00"
Run Code Online (Sandbox Code Playgroud)
并希望它看起来像这样:
var str = "Something%5B0%5D.Prop1=1&Something%5B0%5D.Prop2=False&Something%5B0%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Something%5B1%5D.Prop1=2&Something%5B1%5D.Prop2=False&Something%5B1%5D.Prop3=10%2F04%2F2013+00%3A00%3A00&Something%5B2%5D.Prop1=3&Something%5B2%5D.Prop2=False&Something%5B2%5D.Prop3=29%2F04%2F2013+00%3A00%3A00&Something%5B3%5D.Prop1=4&Something%5B3%5D.Prop2=False&Something%5B3%5D.Prop3=29%2F04%2F2013+00%3A00%3A00"
Run Code Online (Sandbox Code Playgroud)
即删除所有项目%5BX%5D.部分
我该怎么做呢?我想过使用类似的东西:
str = str.substring(str.indexOf('Something'), str.length);
Run Code Online (Sandbox Code Playgroud)
但显然只会删除第一次出现.
此外,%5B和%5D之间的数字可以是任何数字,不一定是9.
这似乎应该很简单,但出于某种原因,我很难过.我在SO上发现了一些相似的东西,但没有任何东西可以处理所有上述标准.
jquery ×3
android ×1
asp.net-mvc ×1
c# ×1
css ×1
csv ×1
html ×1
javascript ×1
sql ×1
sql-server ×1
string ×1
vb.net ×1