2013-04-07 68 views
0

我想讓用戶可以選擇前2輪或4輪,然後根據2/4輪有一個輸入類型的文本字段,他們必須寫數字的票據,然後根據選定的事件它jquery計算票數和車的價格,並將它們寫入一個變量selected_event(每個div的價格有自己的ID與div的名稱$('#' + selected_event).html("€ " + totale + ",00"); 我寫的jQuery代碼不行!也許我可以選擇與輸入類型無線電處於同一父div的輸入字段,然後根據該輸入類型文本來更改價格.cange(),但我選擇它時出現問題,我嘗試使用.child()。 。父()..jquery不選擇所選div的子元素

HTML:

<div class="more_car_info"> 
       <div class="small_car_image"> 
        <img src="http://www.domain/slide1.jpg" style="width:101px;height:66px;"> 
      </div> 
      <div class="car_ticket_anzahl_und_prise"> 
       <p style="float:left;"><span style="margin-right:45px;"><input value="2runden" alt="1" name="anzahl_ticket" type="radio" style="width: 20px !important;margin:0;height:25px;"> 2 Runden </span><span style="margin-right:45px;">199,00€</span> Anzahl Ticket: <input type="text" class="anzahl_tickets" name="Nürburgring" style="width:20px !important;margin-bottom: 4px !important;"></p> 
       <p style="float:left;"><span style="margin-right:45px;"><input value="4runden" alt="2" name="anzahl_ticket" type="radio" style="width: 20px !important;margin:0;height:25px;"> 4 Runden </span><span style="margin-right:45px;">359,00€</span> Anzahl Ticket: <input type="text" class="anzahl_tickets" name="Nürburgring" style="width:20px !important;margin-bottom: 4px !important;"></p> 
      </div> 
     </div> 

的jQuery:

if($('input[name=anzahl_ticket]:checked').val() == '2runden') { 
    $('.anzahl_tickets').change(function() { 
      var selected_event = $('.anzahl_tickets').attr("name");  
      var nr1 = $('.anzahl_tickets').val(); 
      var nr2 = +nr1; 
      var car = 199; 
      var totale = (nr2 * car); 
      alert(selected_event); 
      $('#' + selected_event).html("€ " + totale + ",00"); //gesamtpreis 
     }); 
} 
else if($('input[name=anzahl_ticket]:checked').val() == '4runden'){ 
    $('.anzahl_tickets').change(function() { 
     var selected_event = $('.anzahl_tickets').attr("name"); 
     var nr1 = $('.anzahl_tickets').val(); 
     var nr2 = +nr1; 
     var car = 366; 
     var totale = (nr2 * car); 
     $('#' + selected_event).html("€ " + totale + ",00"); //gesamtpreis 
     }); 
} 

回答

2

嘗試用$(this)換掉$('.anszhl_tickets)選擇你處理內部,像:

var selected_event = $(this).attr("name"); 
    var nr1 = $(this).val(); 

如果您的頁面上有多個元素,且類別爲.anszhl_tickets,那麼您的代碼將不會執行您認爲的操作,因爲$('.anszhl_tickets')將匹配多個元素。

+0

我也有類的乘法元素:單選按鈕的anzahl_ticket和用於輸入類型文本乘以元素的類:anzahl_tickets – TooCooL 2013-04-07 18:50:07

+0

上面的HTML重複乘以倍數,唯一不同的是inupt的名字鍵入字段文本:名稱=「紐博格林」是爲這個事件,因爲其他事件是不同的.. – TooCooL 2013-04-07 18:53:17

+0

我做了一個小提琴,你想要的大部分我想... [小提琴在這裏](http:// jsfiddle達網絡/ D3zN9/3 /) – dinjas 2013-04-07 19:40:45