【问题标题】:asp.net mvc: simulating autopostback for simple checkboxasp.net mvc:模拟简单复选框的自动回发
【发布时间】:2009-11-24 01:29:36
【问题描述】:

我有一个简单的复选框,生成:

<%= Html.CheckBox("myCB" )%>

如何向它添加一个 onChange 处理程序来进行提交?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    向 CheckBox 添加一个 onClick 处理程序,该处理程序提交 CheckBox 所属的表单...快速,clickHandler 无代码示例:

    <%= Html.CheckBox("myCB", 
        new { onClick = "$(this).parent('form:first').submit();" });
    

    (示例绝对没有检查准确性)

    【讨论】:

    • 如果该代码可以工作,复选框必须在form 的正下方。改用:$(this).parents('form:first').submit();
    【解决方案2】:

    如果你只有一个表单,并且没有使用 JQuery(顺便说一句,你应该使用)试试这个:

    <%= Html.CheckBox("myCB", 
    new { onClick = "document.form.submit();" });
    

    【讨论】:

    • 这就接近了,实际语法是document.forms[0].submit()
    【解决方案3】:

    我强烈建议使用 jQuery 来支持这一点,因为通过让选择器基于 ID 或基于类,它可以更轻松地将行为添加到整个站点的复选框。然后,您可以将脚本放在页面上的任何位置或外部 .js 文件中。

    <script language="javascript" type="text/javascript">
      $('#myCB').click(function() { $(this).parent('form:first').submit(); });
    </script>
    

    或者,选择器可以是基于类的(或任何属性)。更多信息在这里:http://docs.jquery.com/Selectors

    【讨论】:

    • 我可能最终会在其他项目中使用它,但现在它只是一个地方 - 不过谢谢。
    猜你喜欢
    • 2011-01-06
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 2011-12-11
    相关资源
    最近更新 更多