2014-10-03 3 views
-2

Не могу решить проблему здесь. show() вне функции onSelectChange работает хорошо, внутри нет. Append работает хорошо, если ярлык не скрыт. Мои коды ниже:jquery show не работает в функции

jQuery(document).ready(function(){ 
 
\t jQuery("#cityfrom").change(onSelectChange); 
 
}); 
 
function onSelectChange(){ 
 
\t var selected = jQuery("#cityfrom option:selected"); 
 
\t if(selected.val() != 0){ 
 
\t \t selectedfrom = selected.text(); 
 
\t \t jQuery("#hidden").show(); 
 
\t \t jQuery("#append").text(selectedfrom); 
 
\t } 
 
}
#hidden{ 
 
\t display:none; 
 
}
<label id="hidden"><input type="radio" name="start" value="xx"><span id="append"></span></label> 
 
<select id="cityfrom"> 
 
\t <option value="" disabled selected>Izvēlies citu pilsētu</option> 
 
\t <option name="pilseta" value="smiltene">Smiltene</option> 
 
\t <option name="pilseta" value="valmiera">Valmiera</option> 
 
</select>

+2

Я думаю, что вы забыли часть вашего кода. 'Id', на который вы ссылаетесь, не существует – EoiFirst

+1

Ваш код работает. Это не в примере, потому что вы не должны иметь теги 'script' в разделе javascript, вы не ссылались на jQuery, и выбор, который вы имеете в виду, не существует. Корректируя все это, в коде нет ничего принципиально неправильного. Часть 'option: selected' является излишней. 'jQuery ('# cityfrom'). val()' будет делать. –

+0

Я не думаю, что это сообщение стоит ответа, но только комментарий, что автор должен изучить jQuery немного больше. Down vote –

ответ

1

Есть 2 funamental проблемы с сниппета вы публикуемую

  • При настройке сниппет вас (ни фактические проблемы с кодом!) не выбрал и версию jQuery
  • Вы включили <script> теги в javascript панели

jQuery(document).ready(function() { 
 
    jQuery("#cityfrom").change(onSelectChange); 
 

 
    
 
}); 
 

 
function onSelectChange() { 
 
    var selected = jQuery("#cityfrom option:selected"); 
 
    if (selected.val() != 0) { 
 
     selectedfrom = selected.text(); 
 
     jQuery("#hidden").show(); 
 
     jQuery("#append").text(selectedfrom); 
 
    } 
 
    }
#hidden { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label id="hidden"> 
 
    <input type="radio" name="start" value="xx"><span id="append"></span> 
 
</label> 
 
<select id="cityfrom"> 
 
    <option value="" disabled selected>Izvēlies citu pilsētu</option> 
 
    <option name="pilseta" value="smiltene">Smiltene</option> 
 
    <option name="pilseta" value="valmiera">Valmiera</option> 
 
</select>

+0

Ваш последний пункт не является обязательным, так как 'onSelectChange' не существует в текущей области, будет получен один из более высокой области. –

+0

@AntoineCombes - вы правы - не знаете, о чем я думал! – Jamiec

+0

Ну, к сожалению, все еще не работает даже с использованием точного кода. – slc

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