2010-09-25 4 views
0

Я задал вопрос относительно этой проблемы около нескольких часов назад и заметил, что это все еще работает неправильно.Javascript липкий зависимый dropdown

Мне нужно показать текстовое поле пользователю, если они выбрали два из трех вариантов. Когда пользователь нажимает кнопку отправки, выпадающий список должен поддерживать выбранное значение. Я могу сделать это с помощью моего кода приложения, но там, где сбой javascript, это то, что скрытый div, даже если он имеет значение, зависящее от отображаемого текстового поля, больше не будет отображаться. Это из-за обновления пейджера.

Вот мой код. Может кто-нибудь, пожалуйста, скажите мне, что мне нужно изменить, чтобы текстовое поле снова появилось после обновления, если выбрано значение, отличное от «NONE»?

function toggleTbox(chosen) 
{ 
    var hide = document.getElementById("otherValues"); 
    if (chosen == 'PHASE1') { 
     hide.style.display = 'block'; 
    } else if(chosen == 'PHASE2') { 
     hide.style.display = 'block'; 
    } else { 
     hide.style.display = 'none'; 
    } 
} 

<tr> 
    <td> 
    <label for="sales">Sales:</label><br /> 
    <select name="sales" onchange="toggleTbox(document.salesEntry.salesEntry.options[ document.salesEntry.rxGateway.selectedIndex ].value);"> 
    <option value="[server]">[server]</option> 
    <option value="NONE">NONE</option> 
    <option value="PHASE1">PHASE1</option> 
    <option value="PHASE2">PHASE2</option> 
    </select> 
    </td> 
    <td> 
    <div id="otherValues" style="display:none"> 
     <label for="salesNumber">Sales No</label><br /> 
     <input type="text" name="salesNumber" id="salesNumber" value="[server]" /> 
    </div> 
    </td> 
</tr> 

ответ

1

Просто добавьте вызов скрипта для обеспечения переключения вызывается, когда страницы нагрузки для инициализации видимости дивы.

<tr> 
    <td> 
    <label for="sales">Sales:</label><br /> 
    <select name="sales" onchange="toggleTbox(document.salesEntry.salesEntry.options[ document.salesEntry.rxGateway.selectedIndex ].value);"> 
    <option value="[server]">[server]</option> 
    <option value="NONE">NONE</option> 
    <option value="PHASE1">PHASE1</option> 
    <option value="PHASE2">PHASE2</option> 
    </select> 
    </td> 
    <td> 
    <div id="otherValues" style="display:none"> 
     <label for="salesNumber">Sales No</label><br /> 
     <input type="text" name="salesNumber" id="salesNumber" value="[server]" /> 
    </div> 
    <script type="text/javascript"> 
     toggleTbox(document.salesEntry.salesEntry.options[document.salesEntry.rxGateway.selectedIndex ].value); 
    </script> 
    </td> 
</tr>