2010-09-15 2 views
0

я получил этот код здесь недавноПомощь с JavaScript, чтобы скрыть кнопки радио

<script type='text/javascript'> 
$('#discountselection').hide(); 

    $('#No').click(function(){ 
     $('#discountselection').hide(); 
    }); 

    $('#Yes').click(function(){ 
     $('#discountselection').show(); 
    }); 
</script> 

цель заключается в том, чтобы скрыть выпадающий в зависимости от того, да и не были выбраны радио-кнопки. Вот мой код:

<td width="338">Would You like to avail of our multiyear discounts?* 
    <br />See <a href="Pricing">Pricing</a> for more details 
</td> 
<td colspan="4"> 
    <input name="discount" type="radio" id="Yes" value="Yes" />Yes 
    <input name="discount" type="radio" id="No" value="No" checked="checked" />No<br /> 
    <select class="purple" name="discountselection" id="discountselection"> 
     <option value="1" selected="selected">1 Year</option> 
     <option value="2">2 Years</option> 
     <option value="3">3 Years</option> 
     </select>     
</td> 

У меня есть JavaScript помещается между тегами головы, но по каким-то причинам это просто не работает для меня. Я вообще не знаком с javascript. Если бы кто-нибудь мог видеть, куда я иду, это будет большой помощью. Спасибо.

+0

Включили ли вы jQuery? Этот скрипт, похоже, использует его. – halfdan

+0

Что означает «между метками»? Какие теги? – annakata

+0

@ halfdan..I думал, что моя проблема решена, потому что я забыл связать файл jquery, но затем я сделал это Однако он все еще не работает. @annakata - извините, я имел в виду теги заголовка, почему-то глава не отображался. – 109221793

ответ

2

Ваш код в порядке, вам просто нужно обернуть его готовым обработчиком.

как это,

$(function() { 
    $('#discountselection').hide(); 

    $('#No').click(function() { 
     $('#discountselection').hide(); 
    }); 

    $('#Yes').click(function() { 
     $('#discountselection').show(); 
    }); 
});​ 

вы также можете сократить свои коды, как это,

$(function() { 
    $('#discountselection').hide(); 
    $('#Yes, #No').click(function() { 
     $('#discountselection').toggle(this.value==='Yes'); 
    }); 
});​ 
+1

Спасибо, что-то настолько простое, но важное! – 109221793

+0

Нет проблем ... см. Добавленные указатели;) – Reigel

0

Код работает отлично.

Если это не работает, попробуйте пару вещей:

  • убедитесь, что JQuery включен правильно и работает
  • кладет обработки событий код в любом месте после разметки с те элементы
+0

Привет, Делан, я полагаю, вы скопировали мой код именно? Я просто не понимаю, что это может быть. Этот код работал даже на jsfiddle, но это, похоже, не делает трюк для меня. – 109221793

+0

должен быть комментарий ... вы можете удалить это до того, как произойдет проголосовавший;) – Reigel

+0

Сделано, я добавил несколько советов. –

1

Если вам не нужен JQuery, вот один из способов сделать это

<script type="text/javascript"> 
function showDiscount(show) { 
    document.getElementById('discountselection').style.display=(show)?'block':'none'; 
} 
window.onload=function() { 
    showDiscount(document.getElementById('discountYes').checked); 
} 
</script> 
<table> 
<tr> 
<td width="338">Would You like to avail of our multiyear discounts?* 
    <br />See <a href="Pricing">Pricing</a> for more details 
</td> 
<td colspan="4"> 
    <input name="discount" type="radio" id="discountYes" value="Yes" onclick="showDiscount(this.checked)"/>Yes 
    <input name="discount" type="radio" id="discountNo" value="No" checked="checked" onclick="showDiscount(!this.checked)"/>No<br /> 
    <select class="purple" name="discountselection" id="discountselection" style="display:none"> 
     <option value="1" selected="selected">1 Year</option> 
     <option value="2">2 Years</option> 
     <option value="3">3 Years</option> 
     </select>     
</td> 
</tr> 
</table> 
0

Синтаксис $(), который вы используете, - это синтаксис jQuery, а не простой Javascript. JQuery - это библиотека Javascript, которая добавляет дополнительную функциональность поверх обычного JS. Если вы используете этот синтаксис, вам нужно включить библиотеку JQuery.

То, что вы пытаетесь достичь, относительно просто, даже без JQuery, но код будет выглядеть совершенно иначе, если вы не планируете использовать JQuery.

Если вы планируете использовать JQuery, ваш код должен быть завернут в готовый блок documentemnt, чтобы он был правильно инициализирован.

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