1

トレーニングコースの注文フォームを作成しようとしています。これには、既存または以前の顧客の割引が含まれます。シンプルなはずです。元学生の場合はチェックボックスをオンにするだけで、フォームに割引が適用されます。

私が書いたコードはほとんど機能しますが、明白な問題があります。初めてチェックボックスをオンにすると、何も起こりません。次に、チェックボックスをオフにすると、割引が適用されます。もう一度チェックボックスをオンにすると、割引が削除されます。つまり、チェックボックスを1回オンにすると何も起こりませんが、もう一度クリックすると、既存/以前の顧客ではないことを示しているにもかかわらず、割引を受けられます。

htmlは次のとおりです。

<input type="checkbox" name="discounttick" value="Current or former student" id="discountbox" />

そしてjquery:

var discount = 1;

function discountfunction(){
 if($("#discountbox").attr('checked')){
 discount = 0.9;
 }
 else {
 discount = 1;
 } 
 }

$("#discountbox").click(discountfunction);

どんな助けでも大歓迎です。

ありがとう!

4

3 に答える 3

2

attrpropメソッドは、代わりに使用できる要素のプロパティを取得/設定するための適切なオプションではありません。

if($("#discountbox").prop('checked')){

三項演算子とchangeイベントを使用することもできます。

$('#discountbox').change(function(){
     discount = this.checked ? 0.9 : 1
})
于 2012-09-28T11:07:37.160 に答える
0

attrの代わりにisを使用してみてください。

 var discount = 1;

    function discountfunction(){
     if($("#discountbox").is(':checked')){
     discount = 0.9;
     }
     else {
     discount = 1;
     } 
     }

    $("#discountbox").click(discountfunction);
于 2012-09-28T11:25:11.250 に答える
0

変数を男と交換する

var discount = 1;

function discountfunction(){
 if($("#discountbox").attr('checked')){
 discount = 1;
 }
 else {
 discount = 0.9;
 } 
 }

$("#discountbox").click(discountfunction);
于 2012-09-28T11:07:59.220 に答える