首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个空的列表框并传递选项而不选择它们?

如何创建一个空的列表框并传递选项而不选择它们?
EN

Stack Overflow用户
提问于 2011-06-23 14:57:16
回答 4查看 2.9K关注 0票数 5

在我的表单中,我将类别从一个列表框移到另一个列表框,如下所示:

下面的框是“输入”框,在发送表单时在服务器端读取。下面是我如何创建列表框:

代码语言:javascript
复制
<%: Html.ListBoxFor(m => m.categories, Model.categories)%>

我这里有两个问题:

  1. In Firefox,当第一次加载表单时,底部的框总是有默认的<option></option>。在服务器端可以删除吗?IE似乎创建了一个空框,但没有创建FF。

为了解决这个问题,我删除了页面加载上的空选项。这方面的一个问题是,当表单出现错误且未提交时,将再次删除这些选项。

  • 为了使底部框中的选项发布,必须选择这些选项。为了解决这个问题,我使用了下面的jQuery来选择表单post.

上的选项

选择提交选项的jQuery:

代码语言:javascript
复制
$("form").submit(function (event) {
    $("#categories").find("option").attr('selected', 'selected');  
});

jQuery在加载时删除选项:

代码语言:javascript
复制
$("#categories").find("option").remove();

问题

  1. 可以创建一个在所有浏览器中都能工作的空列表框吗?
  2. ,我必须选择底部框中的选项还是有解决办法?

Clarifiation:我希望尽可能多地在服务器端完成,最好是使用一些与MVC相关的内容。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-23 15:26:58

他说:不是删除所有选项,而是删除空选项,这样就不会重置。

代码语言:javascript
复制
$('#mySelect option').each(function () {
    if(!$(this).val())
        $(this).remove();
});

http://jsfiddle.net/yWHLW/5/

票数 1
EN

Stack Overflow用户

发布于 2011-06-23 15:19:10

  1. http://jsfiddle.net/wVWGm/检查空列表框.

的浏览器兼容性。

2

代码语言:javascript
复制
$("form").submit(function (event) {
    $("#categories").find("option:selected");  
});
票数 1
EN

Stack Overflow用户

发布于 2011-06-23 15:26:12

Firefox有一个特性,要求它创建空白元素,以便实际显示select元素。恐怕你不能解决这个问题。然而,第二种可能的解决办法可能会消除你对#1的担忧。

如果您在添加和删除按钮上构建了一个jQuery单击事件处理程序,以便为在框之间视觉上移动的每个值创建和销毁具有相同名称属性的隐藏输入,它们将以CSV字符串的形式到达Request.Form集合的适当成员中,这些值可以通过调用转换为一个值数组:

代码语言:javascript
复制
Request.Form("myHiddenInputName").Split({","c})

或等效的C#代码。您不需要选择submit上的元素,也不需要担心清除Firefox在服务器端创建的空值。当然..。在MVC架构中,这可能不是最吸引人的解决方案,但这是我的第一次响应,所以我想我应该分享。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6456147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档