Потеря данных при отправке электронной почты при удалении повторяющихся значений из нескольких списков выбора - PullRequest
0 голосов
/ 01 октября 2019

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

<script>
    function disableValue(str){
                var dis1=document.getElementsByTagName("option");
                 for(var i=0;i<dis1.length;i++){
                        if(dis1[i].value==str){
                             dis1[i].disabled=true;
                        }
                 }
                return true;
    }

</script>

У меня есть 18 отдельных списков выбора, каждый из которых одинаково ищет пользовательский ввод, оценивая элементы из 18-1. Как только номер используется, он отображается серым цветом и недоступен в последующих списках выбора именно так, как мне нужно.

        <select onchange="return disableValue(this.value)" name="game01value">
          <option value="--" >--</option>
          <option value="18"  class="go18">18</option>
          <option value="17"  class="go17">17</option>
          <option value="16"  class="go1"6>16</option>
          <option value="15"  class="go15">15</option>
          <option value="14"  class="go14">14</option>
          <option value="13"  class="go13">13</option>
          <option value="12"  class="go12">12</option>
          <option value="11"  class="go11">11</option>
          <option value="10"  class="go10">10</option>
          <option value="09"  class="go9">09</option>
          <option value="08"  class="go8">08</option>
          <option value="07"  class="go7">07</option>
          <option value="06"  class="go6">06</option>
          <option value="05"  class="go5">05</option>
          <option value="04"  class="go4">04</option>
          <option value="03"  class="go3">03</option>
          <option value="02"  class="go2">02</option>
          <option value="01"  class="go1">01</option>
     </select>

Однако, после отправки ввода, game01value и другие записи gameXXvalue в созданной электронной почте были созданыне хватает. Если я удаляю сценарий, я получаю запись, такую ​​как:

1. contest = NFL Week 4 (18 Games)
2. emailaddress = boneman@unforgettable.com
3. game01 = Eagles
4. game01value = 18
5. game02 = USC Trojans
6. game02value = 17
7. game03 = Virginia Cavaliers
8. game03value = 16
9. game04 = at Oregon State Beavers
10. game04value = 15

, но когда я вставляю сценарий для удаления дублирующихся значений, тот же пользовательский ввод приводит к следующему:

1. contest = NFL Week 4 (18 Games)
2. emailaddress = boneman@unforgettable.com
3. game01 = Eagles
4. game02 = USC Trojans
5. game03 = Virginia Cavaliers
6. game04 = at Oregon State Beavers

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

Мой код отправки:

<input type="submit" name="submit" value="Print and Submit Football Pool" onclick = window.print();>
<input type="reset" name="reset" value="Reset" >       
<input type="hidden" name="thankyou_url" value="http://www.xxxxxxx/Thank You for Your 
Entry.html">

Есть ли способ сохранитьвводить данные выбора в почтовую рассылку, исключая выбранное значение в дополнительных списках выбора?

Спасибо

1 Ответ

0 голосов
/ 01 октября 2019

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

Так что, как я вижу, у вас есть опции.

  1. изменить способ сбора данных из формы.

  2. Это может быть немного проще, вместо того, чтобы отключить выбранную опцию, использовать display none или иметькласс, который сделает их скрытыми, этот не очень красивый, но он должен дать вам то, что вы ищете, без каких-либо серьезных изменений в коде.

вы можете использовать код, подобный этому, чтобы добавитьстиль для div:

document.getElementById("myDIV").classList.add("mystyle");

Или, если я приму ваш код для более прямого соответствия, я думаю, что вы можете заменить dispabled = true в вашем коде следующим:

document.getElementById('answer-12702744').style.display = 'none;'
...