1. 添加网址时应该先检查输入是否为空,再检查是否已存在,最后再检查格式是否正确,提示信息也应更加明确。修改如下:
// 监听对话框提交事件
$('.dialog form').submit(function(e) {
    e.preventDefault();
    var dialogId = $(this).parents('.dialog').attr('id');
    var action = '';
    var checked = $('input[name="url-checkbox"]:checked');
    switch (dialogId) {
        case 'add-dialog':
            action = 'add';
            break;
        case 'delete-dialog':
            action = 'delete';
            break;
        case 'lock-dialog':
            action = 'lock';
            break;
        case 'unlock-dialog':
            action = 'unlock';
            break;
    }
    if (action === 'add') {
        var newUrl = $(this).find('input[name="url-input"]').val().trim();
        if (newUrl === '') {
            alert('网址不能为空');
            return false;
        }
        if (in_array(newUrl, $urls)) {
            alert('该网址已存在');
            return false;
        }
        if (!filter_var(newUrl, FILTER_VALIDATE_URL)) {
            alert('网址格式不正确');
            return false;
        }
        $.post('action.php', {action: action, url: newUrl}, function(data) {
            if (data === 'success') {
                location.reload();
            } else {
                alert('添加网址失败,请重试');
            }
        });
    } else if (action === 'delete' || action === 'lock' || action === 'unlock') {
        if (checked.length === 0) {
            alert('请选择要操作的网址');
            return false;
        }
        var selected = checked.map(function() {
            return $(this).val();
        }).get();
        $.post('action.php', {action: action, urls: selected}, function(data) {
            if (data === 'success') {
                location.reload();
            } else {
                alert('操作失败,请重试');
            }
        });
    }
});
  1. 删除、锁定、解锁功能需要在没有选中任何网址时提示用户选择要操作的网址。修改如下:
// 监听删除按钮点击事件
$('#delete-btn').click(function() {
    var checked = $('input[name="url-checkbox"]:checked');
    if (checked.length === 0) {
        alert('请选择要操作的网址');
        return;
    }
    $('#delete-dialog').show();
});

// 监听锁定按钮点击事件
$('#lock-btn').click(function() {
    var checked = $('input[name="url-checkbox"]:checked');
    if (checked.length === 0) {
        alert('请选择要操作的网址');
        return;
    }
    $('#lock-dialog').show();
});

// 监听解锁按钮点击事件
$('#unlock-btn').click(function() {
    var checked = $('input[name="url-checkbox"]:checked');
    if (checked.length === 0) {
        alert('请选择要操作的网址');
        return;
    }
    $('#unlock-dialog').show();
});
  1. 解锁功能的实现逻辑有误,应该首先判断选中的网址是否已被锁定,然后再替换掉"locked:"前缀。修改如下:
// 解锁网址
if (isset($_POST['action']) && $_POST['action'] === 'unlock' && isset($_POST['urls'])) {
    $selected = $_POST['urls'];
    foreach ($selected as $index) {
        if (array_key_exists($index, $urls)) {
            $url = $urls[$index];
            if (strpos($url, 'locked:') === 0) {
                $urls[$index] = substr($url, 7);
            }
        }
    }
    file_put_contents($url_file, implode("\n", $urls));
    echo 'success';
}
  1. 搜索功能应该忽略大小写,同时应该支持模糊匹配。修改如下:
// 监听搜索框输入事件
$('#search-input').on('input', function() {
    var keyword = $(this).val().trim().toLowerCase();
    if (keyword !== '') {
        $('#url-table tbody tr').hide();
        $('#url-table tbody tr').filter(function() {
            return $(this).text().toLowerCase().indexOf(keyword) !== -1;
        }).show();
    } else {
        $('#url-table tbody tr').show();
    }
});
  1. 对话框关闭按钮点击事件应该使用事件委托,避免重复代码。修改如下:
// 监听对话框关闭按钮点击事件
$('.dialog').on('click', '.close-btn', function() {
    $(this).parents('.dialog').hide();
});
按12345优化内容进行优化1 添加网址时应该先检查输入是否为空再检查是否已存在最后再检查格式是否正确提示信息也应更加明确。2 删除、锁定、解锁功能需要在没有选中任何网址时提示用户选择要操作的网址。3 解锁功能的实现逻辑有误应该首先判断选中的网址是否已被锁定然后再替换掉locked前缀。4 搜索功能应该忽略大小写同时应该支持模糊匹配。5 对话框关闭按钮点击事件应该使用事件委托避免重复代码。html

原文地址: https://www.cveoy.top/t/topic/bmUH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录