2016-09-13 4 views
0

Я могу заставить свою функцию работать, когда она не находится внутри тега привязки, я знаю, как добавить событие onclick к ссылке, но ее не работает когда я беру это из моего лейбла, он показывает букву S, и я нажимаю на нее, она работает правильно, но я хочу, чтобы она работала с моей симпатичной радиокнопкой, а не буквами, какие-нибудь идеи? Пожалуйста и спасибоКак заставить мою функцию js работать с привязкой/радиокнопкой

  function displayForm(c){ 
 
       if(c.value.includes("youth")){ 
 
        document.getElementById("adult").style.visibility='visible'; 
 
        document.getElementById("youth").style.visibility='hidden'; 
 
       } 
 
       else if(c.value.includes("ladies")){ 
 
        document.getElementById("adult").style.visibility='hidden'; 
 
        document.getElementById("youth").style.visibility='visible'; 
 
       } 
 
       else if(c.value.includes("adult")){ 
 
        document.getElementById("adult").style.visibility='hidden'; 
 
        document.getElementById("youth").style.visibility='visible';} 
 
       else{ 
 
       } 
 
      
 
      }   
 
  
 
     
 
    <div class="sizes"> 
 
     <h3>Available sizes</h3> 
 
     <hr> 
 
     <h4>Youth Sizes</h4> 
 
      <%size_price.each do |item| %> 
 
      <%if item['size'] == "youth small" %> 
 
      <label for="<%=item['size']%>"> 
 
              S 
 
      <input type="radio" id="<%=item['size']%>" name="size" value="youth small" class="size-input" data-price="<%=item['price']%>" onclick="displayForm(this)"> 
 
      </label> 
 
      <%elsif item['size'] == "youth medium" %> 
 
      <label for="<%=item['size']%>"> 
 
     <a href="#">M</a> 
 
      <input type="radio" id="<%=item['size']%>" name="size" value="youth medium" class="size-input" data-price="<%=item['price']%>"> 
 
      </label> 
 
. 
 

 
     <p style="visibility:hidden" id="adult"> 
 
     Line 1: <input id="line1" name="line1" placeholder="Your custom message" type="text" maxlength="14" > 
 
         <br> 
 
     Line 2: <input id="line2" name="line2" placeholder="Your custom message" type="text" maxlength="14"> 
 
         <br> 
 
     Line 3: <input id="line3" name="line3" placeholder="Your custom message" type="text" maxlength="14"> 
 
         <br> 
 
     Line 4: <input id="line4" name="line4" placeholder="Your custom message" type="text" maxlength="14"> 
 
         </p> 
 
         
 
         <p style="visibility:hidden" id="youth"> 
 
    Line 1: <input id="line1" name="line1" placeholder="Your custom message" type="text" maxlength="14" > 
 
         <br> 
 
    Line 2: <input id="line2" name="line2" placeholder="Your custom message" type="text" maxlength="14"> 
 
         <br> 
 
    Line 3: <input id="line3" name="line3" placeholder="Your custom message" type="text" maxlength="14"> 
 
         <br> 
 
    Line 4: <input id="line4" name="line4" placeholder="Your custom message" type="text" maxlength="14"> 
 
         </p>

+0

как бы вы предпочли? Есть несколько способов сделать это. Вы хотите, чтобы ванильный JS или вы предпочитаете использовать jQuery? Кроме того, вы можете создать фрагмент или фрагмент для этого с помощью вашего рендеринга html, чтобы получить более быстрый ответ. – Knostradamus

ответ

0

я добавил фрагмент кода, нажмите на radio button M вы получите список ввода.

Я внес изменения в эту строку, добавив здесь событие onclick.

<input type="radio" id="<%=item['size']%>" name="size" value="youth medium" class="size-input" data-price="<%=item['price']%>" onclick="displayForm(this)"> 

 function displayForm(c){ 
 
      if(c.value.includes("youth")){ 
 
       document.getElementById("adult").style.visibility='visible'; 
 
       document.getElementById("youth").style.visibility='hidden'; 
 
      } 
 
      else if(c.value.includes("ladies")){ 
 
       document.getElementById("adult").style.visibility='hidden'; 
 
       document.getElementById("youth").style.visibility='visible'; 
 
      } 
 
      else if(c.value.includes("adult")){ 
 
       document.getElementById("adult").style.visibility='hidden'; 
 
       document.getElementById("youth").style.visibility='visible';} 
 
      else{ 
 
      } 
 

 
     } 
<div class="sizes"> 
 
    <h3>Available sizes</h3> 
 
    <hr></hr> 
 
    <h4>Youth Sizes</h4> 
 
     <%size_price.each do |item| %> 
 
     <%if item['size'] = "youth small" %> 
 
     <label for="<%=item['size']%>"> 
 
             S 
 
     <input type="radio" id="<%=item['size']%>" name="size" value="youth small" class="size-input" data-price="<%=item['price']%>" onclick="displayForm(this)"> 
 
     </label> 
 
     <%elsif item['size'] = "youth medium" %> 
 
     <label for="<%=item['size']%>"> 
 
    <a href="#">M</a> 
 
     <input type="radio" id="<%=item['size']%>" name="size" value="youth medium" class="size-input" data-price="<%=item['price']%>" onclick="displayForm(this)"> 
 
     </label> 
 
      <p style="visibility:hidden" id="adult"> 
 
    Line 1: <input id="line1" name="line1" placeholder="Your custom message" type="text" maxlength="14" > 
 
        <br> 
 
    Line 2: <input id="line2" name="line2" placeholder="Your custom message" type="text" maxlength="14"> 
 
        <br> 
 
    Line 3: <input id="line3" name="line3" placeholder="Your custom message" type="text" maxlength="14"> 
 
        <br> 
 
    Line 4: <input id="line4" name="line4" placeholder="Your custom message" type="text" maxlength="14"> 
 
        </p> 
 

 
        <p style="visibility:hidden" id="youth"> 
 
Line 1: <input id="line1" name="line1" placeholder="Your custom message" type="text" maxlength="14" > 
 
        <br> 
 
Line 2: <input id="line2" name="line2" placeholder="Your custom message" type="text" maxlength="14"> 
 
        <br> 
 
Line 3: <input id="line3" name="line3" placeholder="Your custom message" type="text" maxlength="14"> 
 
        <br> 
 
Line 4: <input id="line4" name="line4" placeholder="Your custom message" type="text" maxlength="14"> 
 
        </p>

+0

Ссылка все еще не открывает формы полей ввода :( –

+0

OK wait Я буду смотреть в нее – Gowtham

+0

i dono, как сделать это для гиперссылки :( – Gowtham

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