1

選択した行のリンクを無効にするには、jquery を使用する必要があります。私のコードは以下のとおりです。他の2つの要素を無効にすることができましたが、何らかの理由でリンクを無効にすることはできません。リンクは無効に見えますが、それでもクリックできます。選択された行リンク。

Jクエリ

function groupVerificationHandler(){
$('#labelNbrFromSummary').val(labelNbrs);
$('#loadDateFromSummary').val(loadDates);
$('#typeFromSummary').val(typeFromSummary);

//check if no check box is checked-+

if(labelNbrs == ''){
    alert('You must select at least one Label!');
    return false;
}

//disable the check boxes
$('input[name=summaryCheckbox]:checkbox').each(function(){
    $(this).attr('disabled', true); 
});
//diable select button
$('#groupVerification').attr('disabled', true); 
    //disable the link
   $('#label').attr('disabled', true);  

$('#verification').load('/analysis/loadVerification',  
$('#formForSummary').serialize());

//  $('#verification').load(url, function(){});
$('#verification').show();
}

<th class="cb"><input type="button" id="groupVerification" name="selectCheckBox" value="Select">                    
            </th>
<td  id="label" bgcolor='<c:out value="${summary.color}"></c:out>'><a 
                href="/analysis/loadAnalysisDetail?labelNbr=${summary.labelNbr}&loadDate=${summary.loadDate}"><c:out
                        value="${summary.labelNbr}" /> </a>

<td align='center' bgcolor='<c:out value="${summary.color}"></c:out>'>
                <input name='summaryCheckbox' type="checkbox" class="cbx" 
                       value='<c:out value="${summary.labelNbr}"></c:out>,<c:out value="${summary.loadDate}"></c:out>,<c:out value="${summary.eventInd}"></c:out>'>

Jquery を有効にします。

function enableSelectHandler(){
var message = "You have chosen to cancel this update and will be returned to the summary screen.  \n\nDo you want to continue?";
var answer = confirm(message);
if(answer){
    $('#verification').hide();
    //disable the check boxes
    $('input[name=summaryCheckbox]:checkbox').each(function(){
        $(this).attr('disabled', false);        
    });
    //diable select button
    $('#groupVerification').attr('disabled', false);
            // enable the link
            $('#label').attr('disabled', false);

    //need to check if it is the first load for summary
    if($('#labelNbrFromSummary').val() != '') //Not first time
        labelNbrs = $('#labelNbrFromSummary').val();
    //alert(labelNbrs);
    if($('#loadDateFromSummary').val() != '')
        loadDates = $('#loadDateFromSummary').val();
    //alert(loadDates);
    if($('#typeFromSummary').val() != '')
        typeFromSummary = $('#typeFromSummary').val();
    //alert(typeFromSummary);
}else{
    return false;
}   
 }
4

4 に答える 4

3

リンクの href を変更する必要があります。外側tdを無効に設定しても何も起こりません。別の機会に再度有効にしたくない場合:

$('#label').find('a').attr('href', 'javascript:;');

他の時点で再度有効にしたい場合:

var link = $('#label').find('a').first();
var oldHref = link.attr('href');
link.data('oldHref', oldHref).attr('href', 'javascript:;');

そして、後で再度有効にするには:

var link = $('#label').find('a').first();
var oldHref = link.data('oldHref');
link.attr('href', oldHref);
于 2013-05-06T16:13:56.623 に答える