2013-12-14 2 views
0

Я не могу понять, что не так с моим скриптом, и почему даже первый alert не работает?
http://jsfiddle.net/TULsL/17/Сценарий не работает

HTML:

<div id="listProducts"> 
    <input type="radio" class="selectItem" name="inch" id="inch-1" value="1" /> 
    <label for="inch-1">Имя: тостер, Цвет: серый, Тип: мелкая техника, Цена: <span class="priceIn">500</span>, Количество единиц на складе: 5</label> 
    <br/> 
    <input type="radio" class="selectItem" name="inch" id="inch-2" value="4" /> 
    <label for="inch-2">Имя: миксер, Цвет: черный, Тип: мелкая техника, Цена: <span class="priceIn">300</span>, Количество единиц на складе: 3</label> 
    <br/> 
    <input type="radio" class="selectItem" name="inch" id="inch-3" value="5" /> 
    <label for="inch-3">Имя: электрочайник, Цвет: белый, Тип: мелкая техника, Цена: <span class="priceIn">320</span>, Количество единиц на складе: 2</label> 
    <br/> 
</div> 
<input type="text" id="priceValue" /> 

JavaScript:

$(document).ready(function() { 
    $('#listProducts input:radio:checked']).click(function() { 
     alert('test'); 
     var text = $(this).next('label').find('.priceIn').html(); 
     alert(text); 
     $('#priceValue').text(text); 
    }); 
}); 
+0

HTTP: // jsfiddle .net/TULsL/25/ –

ответ

0

удалить] и: проверено и текст (текст) должен быть Вэла (текст)

Оригинал:

$(document).ready(function() { 
    $('#listProducts input:radio:checked']).click(function() { 
     alert('test'); 
     var text = $(this).next('label').find('.priceIn').html(); 
     alert(text); 
     $('#priceValue').text(text); 
    }); 
}); 

Правильно:

$(document).ready(function() { 
    $('#listProducts input:radio').click(function() { 
     alert('test'); 
     var text = $(this).next('label').find('.priceIn').html(); 
     alert(text); 
     $('#priceValue').val(text); 
    }); 
}); 
+0

это не помогло ( –

+1

Я нашел, Мне нужно было также удалить ': checked' и заменить' $ ('# priceValue'). Text (text); 'с' $ ('# priceValue'). Val (text); ' –

+0

Хорошо, что вы его нашли, я добавил его к своему ответу :) – fonZ

0

Вы делаете ошибку два из них ']' и проверяется свойство ..

$('#listProducts input:radio').click(function() { 
      alert('test'); 
      var text = $(this).next('label').find('.priceIn').html(); 
      alert(text); 
      $('#priceValue').val(text); 
     }); 
0

' Вы забыли в конце.

$('#listProducts input:radio:checked]') 
        -------------------^-- 

также просто использовать $('#listProducts input:radio]') вместо

$('#listProducts input:radio:checked]') 
+0

, но затем вы дважды открываете цитату и закрываете ее один раз или открываете один раз и закрываете дважды, это должно быть? – fonZ

+0

@fonZ ohh nice catch ... я забыл об этом. –

0
$(document).ready(function() { 
    // an extra ] at the end of the selector and you were registering the handler to only the checked radio button, in this case when the page loads there are no radio button which is checked 
    $('#listProducts input:radio').change(function() { 
     alert('test'); 
     var text = $(this).next('label').find('.priceIn').html(); 
     alert(text); 
     $('#priceValue').text(text); 
    }); 
}); 

Демо: Fiddle

Также лучше использовать обработчик изменений вместо щелчка обработчика

Смежные вопросы