仅禁用设置按钮中的一个按钮

时间:2018-11-28 08:51:32

标签: javascript jquery

我已经编码了表创建PHP,该PHP使用来自名为job_list的mysql表中的数据创建表。表格的每一行都有一个按钮,供用户用来选择作业。

我的问题是在这里我只想禁用所有按钮中的一个按钮。我尝试使用单个类禁用所有这些类。然后我遇到了另一个解决方案here,这是我想要的,但是问题是,每当我第一次单击按钮以使代码起作用时,第一次必须单击两次。初始点击代码开始按预期工作后。

这是我的PHP + HTML代码

<div class="limiter">
    <div class="container-table100">
        <div class="wrap-table100">
            <div class="table">

                <div class="row header">
                    <div class="cell topLeft">
                        Customer Name
                    </div>
                    <div class="cell">
                        Target
                    </div>
                    <div class="cell">
                        File Type
                    </div>
                    <div class="cell">
                        Job Comment
                    </div>
                    <div class="cell">
                        Cust. ID
                    </div>
                    <div class="cell topRight">
                        Select Job
                    </div>
                </div>

                <?php while ($getJobsRow = $getJobs -> fetch(PDO::FETCH_ASSOC)){ ?>
                    <?php $loopCount++; //Count the loop run through time ?>
                <div class="row">
                    <div class="cell left <?php if ($numOfRows == $loopCount){ ?>bottomLeft<?php } //Set the CSS class if the loop is at the last row ?> " data-title="Full Name">
                        <?php echo $getJobsRow['customer_name']; ?>
                    </div>
                    <div class="cell" data-title="Age">
                        <?php echo $getJobsRow['Mal_Name']; ?>
                    </div>
                    <div class="cell" data-title="Job Title">
                        <?php echo $getJobsRow['FileExt']; ?>
                    </div>
                    <div class="cell" data-title="Location">
                        <?php echo $getJobsRow['Job_Comment']; ?>
                    </div>
                    <div class="cell" data-title="Location">
                        <?php echo $getJobsRow['customer_id']; ?>
                    </div>
                    <div class="cell right <?php if ($numOfRows == $loopCount){ ?>bottomRight<?php } ?> " data-title="Location">
                        <button id="selBtnId_<?php echo $getJobsRow['jId']; ?>" class="selJobBtn w3-btn w3-blue-dark w3-round-medium w3-ripple" data-jid="<?php echo $getJobsRow['jId']; ?>">Select</button>
                    </div>
                </div>
                <?php } ?>

            </div>
        </div>
    </div>
</div>

我的JQuery,

$(document).ready(function () {
    $('.selJobBtn').on('click', function () {
        $.ajax({
            url: '../Functions/OpenjobLister_Function.php',
            type: 'get',
            data: {
                'jid':$(this).data('jid'),
                'uid':$('#uId').val()
            },
            dataType:'text',
            complete:function(data){
                if(data.responseText !== "1"){
                    alert("Data not added");
                }else{
                    disableSelBtn();
                }
            }
        });            
    });
});

function disableSelBtn() {
    const $selBtns = $("button[id*='selBtnId_']");

    $selBtns.on('click', function () {
        $(this).prop('disabled', true);
    })
}

我使用AJAX发送和接收数据。我只想在数据提交成功后禁用该按钮。因此,有些人可以告诉我如何在一次单击中完成一次单击而不必单击两次。如果有更好的方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

$(document).ready(function () {
$('.selJobBtn').on('click', function () {
    var thisButton = this;
    $.ajax({
        url: '../Functions/OpenjobLister_Function.php',
        type: 'get',
        data: {
            'jid':$(this).data('jid'),
            'uid':$('#uId').val()
        },
        dataType:'text',
        complete:function(data){
            if(data.responseText !== "1"){
                alert("Data not added");
            }else{
                $(thisButton).prop('disabled', true);
                //disableSelBtn();
            }
        }
    });            
});
});