【问题标题】:Enable button on checkbox selection in MVC 4在 MVC 4 中启用复选框选择按钮
【发布时间】:2014-08-08 07:49:57
【问题描述】:

大量的研究和尝试,但没有奏效。我的问题是我想启用我的按钮来检查可用列表中的至少一个复选框。

以下是画面:

最初这个按钮是启用的,但我的要求是它最初应该被禁用,如果至少有一个复选框被选中,那么它应该被启用。

在这里,我有一个视图作为创建,其中还有一个部分视图,它在一种控制器方法的帮助下显示所有列表视图,即在我的创建视图中,正在呈现另一个视图,它显示所有可用列表。

如果它在一个视图中,那么我会很容易地做到这一点,因为通过获取复选框的 id 并传递给一个 jquery 函数,jquery 有很多小提琴。我知道我需要检查复选框的计数才能使我的按钮启用/禁用,但是我们没有像 ASP 中那样的任何更改事件。

同样在点击 add 时,控制器的方法开始触发为:

[HttpPost]
public ActionResult Create(int id, List<MyModel> myModelList)
{
    // code...
}

在这里,一旦我单击“添加”按钮,就会触发此控制器方法,在我的参数(myModelList)中,我可以检查选中了哪个复选框。因此,我需要在检查任何复选框时执行此操作,以便添加按钮将在单击时启用,我将能够添加我的团队。

那么如何实施这个或者我需要为此做什么? 提前致谢。

【问题讨论】:

    标签: javascript jquery asp.net-mvc-4 razor checkbox


    【解决方案1】:

    更新:糟糕。添加了:checked伪类

    这就是你在 jQuery 中可以做到的方式

    $('#add_button_id').prop('disabled', true); // To disable initially
    
    $(document).on('click', '.checkbox_class', function(){
      if( $('.checkbox_class:checked').length > 0 ){
        $('#add_button_id').prop('disabled', false);
      }
      else{
        $('#add_button_id').prop('disabled', true);
      }
    });
    

    您必须像在 html 代码中一样添加按钮的 id 和复选框的类

    【讨论】:

    • 它工作正常,即最初按钮被禁用,并且在选中任何复选框时,它被启用,但是一旦我取消选中复选框,否则条件不会触发,我尝试使用警报但每次它只会出现条件。你能告诉我一些关于这个的事情吗?
    • 已更新。对不起,错过了最关键的部分。 :-(
    【解决方案2】:

    你可以这样做:

    $(document).on('click', '.checkbox_class', function(){
        if(".checkbox_class:checked").length > 0)
            $('#add_button_id').prop('disabled', false);
        else
            $('#add_button_id').prop('disabled', true);
      }).change();
    

    您还可以在页面加载时触发更改:

    $(function(){
    
      $(".checkbox_class").tirgger('change');
    
    })
    

    【讨论】:

    • .change() 会起作用吗?未经测试,只是猜测它不会因为它会在$(document) 而不是.checkbox_class 上触发
    猜你喜欢
    • 2013-10-03
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2015-12-09
    相关资源
    最近更新 更多