Как исправить отправку html формы методом onsubmit? [Дубликат]

Общие методы - это методы, объявленные с помощью любого типичного параметра типа. См. Doc здесь . Общий тип метода не обязательно должен быть связан с каким-либо общим типом класса объявления класса. Класс может быть или не быть общим.

При вызове универсального метода (статического или нет) вы можете указать общий тип, но обычно не видите его, потому что он обычно автоопределяется. Этот синтаксис, который вы нашли, является тем, который должен быть указан.

Если есть способ, объявленный следующим образом:

 void fromArrayToCollection(T[] a, Collection c) { ...

, вы можете называть его следующим образом:

Integer[] a = ...
ArrayList l = ...
x.fromArrayToCollection(a, l);

, но если у вас есть один такой:

 Collection myMethod(int c) {
  return new ArrayList(c);
}

Тогда у вас есть два способа прояснить тип компилятору. Вы можете дать ему достаточно информации двумя способами.

Один указывает тип в вызове:

Object c = x.myMethod(5);

Другой имеет тип (явный или неявный, назначая переменная):

Collection c = x.myMethod(5);

-1
задан Luca Verdecchia 16 January 2019 в 10:10
поделиться

6 ответов

Почему бы не использовать jquery для получения значения gdpr_privacy? Или вы можете написать onsubmit функцию

func onsubmit(){
  let gdpr_privacy = $('#gdpr_privacy').val();
  $.post('api/',gdpr_privacy)
  // todo 
}
0
ответ дан Shai 16 January 2019 в 10:10
поделиться

изменить атрибут имени входа

<input class="form-check-input" type="checkbox" value="" name="gdpr" id="gdpr_privacy">

на что-то отличное от gdpr, это странная ошибка, которая исправляет эту проблему.

0
ответ дан Kishore Kadiyala 16 January 2019 в 10:10
поделиться

Я полагаю, что вы делаете что-то не так, вызывая функцию проверки в событии onsubmit. Вы можете попробовать сделать вызов функции onClick кнопки отправки. Измените тип кнопки на кнопку вместо отправки и отправьте его из кода JavaScript, откуда вы возвращаете его значение true.

попробуйте изменить свой код следующим образом:

HTML:

    <form name="form1" class="form" method="POST" action="index.php">   

    <input class="form-check-input" type="checkbox" value="" name="gdpr" 
    id="gdpr_privacy">


    <input class="btn btn-primary btn-block" type="button" name="submit" 
    placeholder="Send" id="submit" onclick="gdpr(e)></input>

    </form>

JavaScript:

    function gdpr(e){
     e.preventDefault();
     e.stopPropagation();
    let privacy = document.getElementById('gdpr_privacy').checked;

    if(privacy == false){
        window.alert("false");
        return false;
    }
    else{
         document.forms["form1"].submit();
         window.alert("true");
        return true;
    }
    }
0
ответ дан Usama Kiyani 16 January 2019 в 10:10
поделиться

Просто используйте другое имя функции и удалите e.preventDefault(); и e.stopPropagation();, так как это конфликтует с другими атрибутами в вашей форме.

function checkval(event) {

  var privacy = document.getElementById('gdpr_privacy').checked;

  if (privacy == false) {
    window.alert("false");
    return false;
  } else {
    window.alert("true");
    return true;
  }
}
<form class="form" method="POST" action="index.php" onsubmit="return checkval(event);">

  <input class="form-check-input" type="checkbox" value="" name="gdpr" id="gdpr_privacy">


  <input class="btn btn-primary btn-block" type="submit" name="submit" placeholder="Send" id="submit"></input>

</form>

0
ответ дан barbsan 16 January 2019 в 10:10
поделиться

Удалить onsubmit из тега формы.

Добавить onclick = "" gdpr (e) "на кнопку отправки.

0
ответ дан Onkar Kubal 16 January 2019 в 10:10
поделиться

У вас есть простая синтаксическая ошибка в слушателе:

<form ... onsubmit="return gdpr(e)"> 

Не существует глобальной переменной e , поэтому обработчик выдает ошибку, код не возвращает [114 ] и подача не прекращается. Если вы хотите передать связанный объект события, вы должны использовать событие .

<form ... onsubmit="return gdpr(event)"> 

Но вы все равно не заботитесь о событии, возвращая false , выполняет свою работу.

У вас также есть элемент управления формой с именем gdpr . Это устаревшая функция, когда имена и идентификаторы элементов становятся глобальными свойствами (очень плохая идея, но она застряла), поэтому элемент управления с именем gdpr маскирует функцию с тем же именем в браузерах, которые поддерживают устаревшую функцию так что смени его название. Сопоставление идентификатора является типичной стратегией (но идентификаторы в элементах управления формой на самом деле не нужны).

function gdpr(e) {
  console.log(`I'm a ${e.type} event`);
  return false;
}
<form onsubmit="return gdpr(event)">
  <input type="checkbox" value="" name="gdpr_privacy" id="gdpr_privacy">
  <input class="btn btn-primary btn-block" type="submit">
</form>

0
ответ дан RobG 16 January 2019 в 10:10
поделиться
Другие вопросы по тегам:

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