Оптимизация кода: jQuery, Javascript - PullRequest
0 голосов
/ 13 декабря 2010

ОК, вот моя проблема, ребята.Я работаю над сайтом, на котором люди могут зарегистрироваться (х).У меня есть выпадающее меню состояний для выбора.Основываясь на выборе штата, у меня есть другой список больниц, из которых можно выбирать, в зависимости от выбора штата.Итак, если вы выберете Гавайи, вы увидите только больницы на Гавайях, а не в Техасе, например.У меня есть функция, которая переключает видимость в зависимости от значения флажка, но я не могу заставить его работать на значение раскрывающегося списка.Какие-нибудь мысли?Заранее спасибо.Если есть более быстрый или более стандартный способ решения этой проблемы, любое управление в правильном направлении будет высоко оценено.

Что я пытаюсь использовать:

$(document).ready(function() 
{  $('#stateinjured').change(function()
    {  
        $('#stateinjuredky').toggle(this.checked); 
    }); 

});
<select>
<option selected="selected">Select your state</option>
    <option id="stateinjured" >Kentucky</option>
    <option>West Virginia</option>
    <option>Ohio</option>
    <option>Tennessee</option>
    </select><br/>
<select>
<option style="display:none;" id="stateinjuredky" selected="selected">Choose hospital you visited</option>
    <option>hospital1</option>
    <option>hospital2</option>
    <option>hospital3</option>
    </select>

Ответы [ 2 ]

0 голосов
/ 13 декабря 2010

Я думаю, у вас есть идентификатор и стиль на неправильных элементах.Вам также потребуется некоторая логика, чтобы определить, что было выбрано, и затем показать правильный список.Приведенный ниже код будет отображать только 1 поле выбора при загрузке страницы, а затем в зависимости от того, что выбрано, будет отображаться запрошенный список:

$(document).ready(function() 
{
    $('#stateinjured').change(function() {
        var selectedOption = $(this + "option:selected").val();
        if (selectedOption == "Kentucky") {
            $("#stateinjuredky").css("display","block");
        }
        //or you could just have the select ids be the state names, then you wouldn't need all these if...else statements
    }); 
});

Затем ...

<select id="stateinjured">
    <option selected="selected">Select your state</option>
    <option>Kentucky</option>
    <option>West Virginia</option>
    <option>Ohio</option>
    <option>Tennessee</option>
</select>
<br/>
<select id="stateinjuredky" style="display: none;">
    <option selected="selected">Choose hospital you visited</option>
    <option>hospital1</option>
    <option>hospital2</option>
    <option>hospital3</option>
</select>
<!-- more selects for other states -->

Естьбезусловно, более эффективные способы сделать это, как уже говорили другие.

0 голосов
/ 13 декабря 2010

Вы должны заглянуть в AJAX JQuery, это быстро, и вам не нужен локальный сервер, чтобы использовать его, вы можете использовать ваш веб-сервер.

посмотрите здесь: http://api.jquery.com/category/ajax/

...