【问题标题】:Checking a checkbox to submit to a link not working in Chrome选中复选框以提交在 Chrome 中不起作用的链接
【发布时间】:2013-07-02 23:30:12
【问题描述】:

我在 razor 视图 (.NET MVC3) 中有一个链接,它是显示所有记录(活动和存档)或活动记录(页面加载时的默认值)的排序功能的一部分。它在 Firefox 中运行良好。但它仅在我单击链接的文本部分时才有效,而不是在检查了 chrome 和 IE 的复选框时。这是我使用的代码。

        <a id="lnkShowAll" href="@Url.Action("showAll", "myController", new { showOnlyActive = !Model.Active })" >
        <input id="chkShowAll" type="checkbox"  
                @if(!Model.Active){
                    @: checked="checked"
                } >
          Show All (<span class="activeFont">Active</span> / <span class="archivedFont">Archived</span> )
        </a>

这是控制器,但我怀疑问题出在控制器上,因为选中复选框时没有调用它

public ActionResult Index(bool showOnlyActive = true)
    {
        RecordList recordList = searchForRecordList(showOnlyActive);
        return View("Index", recordList) ;
    }

有人知道我缺少什么吗?

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    我仍然不确定为什么它在 Firefox 中有效,但在 Chrome 和 IE 中无效,但我找到了适用于所有人的解决方案。 我在jquery中为链接的点击功能写了一个事件。

            $("#lnkShowAll").click(function(event)
            {
              var link = $(this);
              var target = link.attr("target");
    
              if($.trim(target).length > 0)
              {
                window.open(link.attr("href"), target);
              }
              else
              {
                 window.location = link.attr("href");
              }
    
              event.preventDefault();
            });
    

    并添加了点击功能,当复选框被选中/取消选中时触发链接的点击事件。

    $("#chkShowAll").click(function(){
                $("#lnkShowAll").click();
    });
    

    这确保无论您使用什么浏览器,只要单击复选框,链接就会被单击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      相关资源
      最近更新 更多