2013-04-12 77 views
0

我有一個「點擊這裏接受條款和條件」複選框在「繼續結帳」鏈接前的表單。jQuery - 刪除複選框時沒有檢查href屬性

使用jQuery當複選框未被選中時,我想刪除「繼續購物」鏈接的href屬性,並且當用戶選中複選框時,href屬性將添加回鏈接。

我使用的代碼如下,但這是不工作的一些原因:

jQuery(document).ready(function() { 

if ($('input#tandc').is(':checked')) { 
    jQuery("#continue_shopping").attr("href"); 
} 
else 
    jQuery("#continue_shopping").removeAttr("href").css({"opacity" : "0.3", "cursor":"default"}); 
    }); 

我的HTML標記是這樣的:

<input type="checkbox" name="tandc" value="tandc" id="tandc" required> 
    I accept the <a href="/terms-and-conditions">Terms and Conditions</a> 
</input> 
<a id="continue_shopping" href="/store/shopping-cart/shipping/">Continue Shopping</a> 

回答

3

試試這個。你應該先設置continue shopping禁用。邏輯上正確?

$(function(){ 
// should be disabled first, shouldnot it be? 
$("#continue_shopping").removeAttr("href").css({"opacity" : "0.3", "cursor":"default"}); 
$('#tandc').change(function() { 
    if($(this).prop('checked')) { 
     $("#continue_shopping").attr('href', '/store/shopping-cart/shipping/'); 
    } else { 
     $("#continue_shopping").removeAttr("href").css({"opacity" : "0.3", "cursor":"default"}); 
    } 
    }); 
}); 

DEMO:working version

+0

+1,人們不使用道具( )足夠:) –

+0

@HanletEscaño,是的。我喜歡它,雖然 – doniyor

+0

是的,我的意思是人們應該更多地使用它:p –

0

是代碼你想要什麼?

$(document).ready(function() { 
    $('#tandc').on('click', function() { 
     if ($(this).is(':checked')) { 
      $("#continue_shopping").attr('href', '/store/shopping-cart/shipping/'); 
     } else { 
      $("#continue_shopping").removeAttr("href").css({"opacity" : "0.3", "cursor":"default"}); 
     } 
    }); 
}); 
0

試試這個: DEMO

http://jsfiddle.net/7kakv/

jQuery(document).ready(function() { 

$('#tandc').on('click', function() { 
     if ($(this).is(':checked')) { 
      $("#continue_shopping").attr('href', '/store/shopping-cart/shipping/').css({"opacity" : "1"}); 
     } else { 
      $("#continue_shopping").removeAttr("href").css({"opacity" : "0.3", "cursor":"default"}); 
     } 
     }); 
    }); 
0

這將設置HREF爲空白時未選中複選框。

if ($('input#tandc').is(':checked') == false) { 
    jQuery("#continue_shopping").attr("href",""); 
}); 
1

兩件事情:

1 - 使用prop()方法。

$('#tandc').change(function() { 
    if($(this).prop('checked')) { 
     $("#continue_shopping").attr('href', '/store/shopping-cart/shipping/'); 
    } else { 
     $("#continue_shopping").removeAttr("href").css({"opacity" : "0.3", "cursor":"default"}); 
    } 
    }); 

2 - 使用一個標籤,這樣用戶不必明確點擊文本框:

<input type="checkbox" name="tandc" value="tandc" id="tandc" required> 
<label for="tandc">I accept the <a href="/terms-and-conditions">Terms and Conditions</a></label> 

</input> 
<a id="continue_shopping" href="#">Continue Shopping</a> 

的jsfiddlehttp://jsfiddle.net/hescano/8narS