JavaScript - onchange в <опции>

Проблема, скорее всего, связана с присвоением номера вашего файлового блока значению, которое должно быть зарезервировано для использования Abaqus. В соответствии с документами 1 существует простое исправление: для Abaqus / Standard используйте номер файла 15-18 или> 100. Для Явного используйте 16-18 или> 100, оканчивающиеся на 5-9 (например, 105).

1 Руководство пользователя Abaqus Analysis> Введение> Выполнение задания> Номера модулей FORTRAN

11
задан suitedupgeek 15 December 2008 в 12:30
поделиться

3 ответа

Установите onchange обработчик событий для избранного поля для рассмотрения в настоящее время выбираемого индекса. Если выбранный индекс является индексом опции 'Other Reason', то отобразите сообщение; иначе скройте подразделение.

 <html>
 <head>
  <script type="text/javascript">
    window.onload = function() {
        var eSelect = document.getElementById('transfer_reason');
        var optOtherReason = document.getElementById('otherdetail');
        eSelect.onchange = function() {
            if(eSelect.selectedIndex === 2) {
                optOtherReason.style.display = 'block';
            } else {
                optOtherReason.style.display = 'none';
            }
        }
    }
  </script>
 </head>
 <body>
    <select id="transfer_reason" name="transfer_reason">
        <option value="x">Reason 1</option>
        <option value="y">Reason 2</option>
        <option value="other">Other Reason</option>
    </select>
    <div id="otherdetail" style="display: none;">More Detail Here Please</div>
</body>
</html>

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

17
ответ дан 3 December 2019 в 02:31
поделиться

После чтения большого ответа Tom я понял, что, если бы я когда-нибудь добавлял другие опции к своей форме, она повредилась бы. В моем примере это довольно вероятно, потому что опции могут быть добавлены/удалены с помощью php панели администрации.

Я сделал немного чтения и изменил его очень немного так, чтобы вместо того, чтобы использовать selectedIndex оно использовало значение вместо этого.

<script type="text/javascript">
window.onload = function() {
    var eSelect = document.getElementById('transfer_reason');
    var optOtherReason = document.getElementById('otherdetail');
    eSelect.onchange = function() {
        if(eSelect.value === "Other") {
            optOtherReason.style.display = 'block';
        } else {
            optOtherReason.style.display = 'none';
        }
     }
  }
  </script>

Надежда это помогает кому-то еще в будущем!

9
ответ дан 3 December 2019 в 02:31
поделиться

Ответ Tom изящен, и аккуратно убирает JS от разметки HTML. Как упомянуто, это могло быть даже перемещено во внешний файл. Однако это добавляет вполне много "ерунды" к коду, как несколько присвоений анонимной функции и т.д.

Если Вы хотите быстрое решение, можно поместить все это в onchange () в избранном теге также. Выберите тот, который Вы видите более пригодный.

<select id="transfer_reason" name="transfer_reason" onchange="document.getElementById('otherdetail').style.display = (this.selectedIndex === 2) ? 'block' : 'none';">
    <option value="x">Reason 1</option>
    <option value="y">Reason 2</option>
    <option value="other">Other Reason</option>
</select>
<div id="otherdetail" style="display: none;">More Detail Here Please</div>
6
ответ дан 3 December 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: