首页 > 解决方案 > 当拖放div行在jQuery中移动时如何禁用按钮

问题描述

不确定如何攻击以下场景。

我有一个form可以拖放的行,而且效果很好。我遇到的问题是,我想在行不匹配时禁用某些按钮,page load并在它们匹配时重新启用。

到目前为止,我有以下 jQuery 代码:

var $form = $('form'),
origForm = $form.serialize();

// Drag & drop for existing rules
    $(function () {
        $("#sortableRows").sortable();
        $("#sortableRows").disableSelection();
    });

    // Check to see if form defaults have changed
$('form :input').change(function () {
    if ($form.serialize() !== origForm) {
        addDisable();
    } else {
        removeDisable();
    }
});

// Added the disabled attribute when form changes
var addDisable = function () {
    $("button[name='addButton'], button[name='modifyButton'], button[name='deleteButton'], button[name='activeButton'], button[name='inactiveButton'], input[name='searchDialPlanBox']").attr('disabled', true);
}

// Removes the disabled attribute
var removeDisable = function () {
    $("button[name='addButton'], button[name='modifyButton'], button[name='deleteButton'], button[name='activeButton'], button[name='inactiveButton'], input[name='searchDialPlanBox']").removeAttr('disabled');
}

正如我所说的,拖放和禁用/启用功能在其他所有方面都可以正常工作,例如,我disable在更改 an 时列出的按钮,input但不确定在移动时如何执行此div row操作。

它的一部分工作但在移动其他div时卡住了,因为第一个工作正常,但其他总是落入Else

拖放不会禁用按钮,因为不属于正确的 IF 语句

标签: javascriptjquery

解决方案


您也可以callback function像下面这样给出sortable

$( ".selector" ).sortable({
    change: function( event, ui ) {}
});

推荐阅读