Функция Javascript для отправки оповещения независимо от возвращаемого значения - PullRequest
0 голосов
/ 18 октября 2019

Функция, созданная для отправки оповещения на основе значения радиоблока, возвращающегося как ноль, вызывает и отправляет оповещение, в то время как радиоблок имеет значение, которое не должно быть нулевым. Где-то еще на странице есть функция, которая скрывает таблицы, на которых появляются эти радиоприемники, и это то, что изначально сделало эту задачу вне моей досягаемости. Если этот div не скрылся, и эти таблицы не были сгенерированы динамически, то это можно было бы решить, добавив в радио обязательный атрибут. Это на самом деле работает до тех пор, пока div показывает, однако ломается, когда скрыто. По сути, мне было поручено проделать долгий путь, чтобы сделать это радио обязательным.

Вот javascript

<script type="text/javascript">
$(function validate() {
$(document).submit(function() {
  <%For z = 0 to TotalUnits - 1%>
  if ($("input[name='checkradio<%=z%>']:checked").length == 0)
    alert("Select Yes or No for Needs Repair checkbox <%=z%>");
    return false;
  }
  <%Next%>
  $("submitbutton").click(function() {
    $("#formID").submit();
document.getElementsByName("checkradio").addEventListener('click', 
validate);  
});
});
});
</script>

Вот HTML

<label id="checklabel" name="checklabel">The Vehicle Requires Repair</label>"


<label id="yesradio">
<input type="radio" ((name="checkradio" & z)) value="1" id="Radio1"> Yes</label>
<label id="noradio">
<input type="radio" ((name="checkradio" & z)) value="0" id="Radio0"> No</label>

Здесьэто скрипт, который скрывает div (я очистил concat. но оставил мясо в его собственных тегах)

<script>

<%for z = 0 to TotalUnits - 1%>

    $( document ).ready(function() {
    $("div.section<%=z%>").hide();
    });


<%next%>

</script>
<%response.write(TmpString)%>

Вот моя кнопка отправки (без метки)

<input value="Submit" type="submit" id="submitbutton" name="submitbutton" 
onsubmit="validate()">

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

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Поскольку каждая радиокнопка является собственным элементом управления, вам необходимо проверить, проверены ли какие-либо элементы управления, связанные вместе (через атрибут name).

Во-первых, getElementsByName()возвращает массив (обратите внимание на s на Elements), поэтому .value для вас не нужно проверять.

(О, и имейте в виду, что наличие нескольких <label id="yesno"> недопустимо, так как элементынеобходимо иметь уникальный атрибут id. В этом случае вам, вероятно, лучше всего просто полностью удалить id="yesno".)

Но гораздо проще сделать это с помощью jQuery ...

<script type="text/javascript">
  $(function() {
    $(document).submit(function() {
      <%For z = 0 to TotalUnits - 1%>
      if ($("input[name='checkradio<%=z%>']:checked").length == 0)
        alert("Select Yes or No for Needs Repair checkbox <%=z%>");
        return false;
      }
      <%Next%>
      $("submitbutton").click(function() {
        $("#formDVIR").submit();
      });
    });
  });
</script>

Используя селектор input[name='checkradio<%=z%>']:checked, вы запрашиваете jQuery найти все элементы управления вводом с именем checkradio1 (или любым другим z) и только те, которые checked. Если длина результирующего объекта jQuery больше 1, вы знаете, что выбран хотя бы один

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

толкни меня или около того

const myId = document.getElementById («myId»);myId.addEventListener («щелчок», функция () {оповещение («сообщение и прочее»)});

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