Новичок: нужно объяснение функции Js

Итак, я выполняю задание, связанное с HTML и JavaScript, и мне не требуется никаких предварительных знаний об этих языках сценариев и программирования. Мне нужно было создать документ, объясняющий, как HTML и JavaScript создают форму ввода, как JavaScript выполняет проверку правильности и т. д.

<head>
  <title>Exam entry</title>
  <script language="javascript" type="text/javascript">

  function validateForm() {
    var result = true;
    var msg="";
    if (document.ExamEntry.name.value=="") {
      msg+="You must enter your name \n";
      document.ExamEntry.name.focus();
      document.getElementById('name').style.color="red";
      result = false;
    }

    if(msg==""){
      return result;
    }
    {
      alert(msg)
      return result;
    }
  }

  </script>
</head>
<body>
  <h1>Exam Entry Form</h1>
  <form name="ExamEntry" method="post" action="success.html">
    <table width="50%" border="0">
      <tr>
        <td id="name">Name</td>
        <td><input type="text" name="name" /></td>
      <tr>
        <td id="subject">Subject</td>
        <td><input type="text" name="subject" /></td>
      </tr>
      <tr>
        <td id="examnumber">Examination Number</td>
        <td><input type="text" name="examnumber" /></td>
      </tr>
      <tr>
        <td><input type="radio" id="examtype" name="examtype" /> : GCSE<br />
        <td><input type="radio" id="examtype" name="examtype"  /> : A2<br />
        <td><input type="radio" id="examtype" name="examtype" /> : AS<br />
      </tr>
      <tr>
        <td><input type="submit" name="Submit" value="Submit" onclick="return validateForm();"          />  </td>
        <td><input type="reset" name="Reset" value="Reset" /></td>
    </tr>
    </table>
  </form>
</body>

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

<td><input type="radio" id="examtype" name="examtype" value="GCSE" /> : GCSE<br />
<td><input type="radio" id="examtype" name="examtype" value="A2" /> : A2<br />
<td><input type="radio" id="examtype" name="examtype" value="AS"/> : AS<br />

и реализовать функцию как таковую:

function confirmation() {
  var checked = null;
  var inputs = document.getElementsByName('examtype');
  for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].checked) {
      checked = inputs[i];
      break;
    }
  }
  if(checked==null)
  {
    alert('Please choose an option');
    return false;
  } else {
    return confirm('You have chosen '+checked.value+' is this correct?');
  }

И отлично, теперь я сделал то, что он сказал, теперь есть окно предупреждения, которое выскакивает и подтверждает выбор переключателя с пользователем, поэтому щелчок по переключателю вызовет событие onclick, которое возвращает функцию. Теперь мой вопрос: как эта функция выполняет проверку подтверждения? (Извините, если я написал слишком много, мой предыдущий пост был отложен несколькими людьми как слишком широкий, потому что я недостаточно ясно выразил то, что я должен сказать.)


person user3613025    schedule 07.05.2014    source источник
comment
Форматирование вашего кода и создание скрипки имеет большое значение.   -  person Logan Murphy    schedule 08.05.2014
comment
OP столкнется с небольшим затруднением при использовании именованной функции в атрибуте onClick в JSFiddle, настройки по умолчанию не настроены для такой работы: stackoverflow.com/questions/9114747/ просто предупреждение :)   -  person Jason Sperske    schedule 08.05.2014


Ответы (2)


Просто добавьте result &= confirmation(); в код подтверждения. Где-то между вашими двумя операторами if.

person Logan Murphy    schedule 07.05.2014

Вам нужно посмотреть событие клика и определить, хотите ли вы разрешить действие:

$(document).ready(function () {
    $('input[type="radio"]').on('click', function () {
        var r = confirm("Are you sure?");
        if (r == true) {
            $(this).prop('checked', true);
        } else {
            $(this).prop('checked', false);
        }
    });
});

http://jsfiddle.net/LTQ9p/1/

person Zoidberg    schedule 07.05.2014
comment
Когда вы предлагаете использовать такую ​​библиотеку, как jQuery, и эта библиотека не упоминалась в вопросе OP, вы должны указать это и какую библиотеку вы используете. - person t.niese; 08.05.2014