我已经编码了表创建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发送和接收数据。我只想在数据提交成功后禁用该按钮。因此,有些人可以告诉我如何在一次单击中完成一次单击而不必单击两次。如果有更好的方法,请告诉我。
答案 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();
}
}
});
});
});