Подавите отправляют событие / Кнопка отправки включила, только если JavaScript отключен

У меня есть некоторая клиентская проверка JavaScript на форме. Это работает отлично. Но я хочу разместить пользователей, которым отключили JavaScript. Моя проверка не выполняется от атрибута onsubmit формы, это - обработчик событий, который связывается с нормальной кнопкой в форме. Таким образом, кнопка, которая начинает проверку и отправляет, не является на самом деле отправлением, это - просто тип = "кнопка":

<input type="button" value="Ok" class="okbtn">

Затем я регистрирую обработчик событий к его событию щелчка, которое делает мою проверку. Это отправляет, передает ли все:

function clickHandler(event){
    thisForm = event.data.caller
    var valid = submitValidation(thisForm);
    if (valid == true){
        thisForm.submit();
    } else{
      }
}

Моя проблема состоит в том, если у пользователя есть отключенный JS, нет никакого способа отправить форму. Я мог сделать кнопку type="submit", который работал бы на пользователей JS-disabled, но затем это будет *всегда отправлять форму и обходить проверку для пользователей JS-enabled. (Проверка будет работать, но она отправит так или иначе). Если я делаю кнопку type="submit" действительно ли я могу заблокировать отправлять событие, если оно нажато? Я использую JQuery, JQuery может подавить отправление? Я хочу, чтобы моя проверка обработала, отправлена ли она.

5
задан Purrell 24 January 2010 в 01:18
поделиться

3 ответа

Вы можете подавить повторные щелчки, делая что-то вроде:

$('input[type=submit]').bind('click', function(e) {
    e.preventDefault() // prevents the form from being submitted
    clickHandler(); // the custom submit action
});

или, вы можете подавить фактическую форму, как это:

$('form').bind('submit', function(e) {
    e.preventDefault();
    // etc
});
12
ответ дан 18 December 2019 в 09:07
поделиться

Измените кнопку на нормальную кнопку отправки и Привязать проверку проверки к событию Отправить () в форме.

$("form").submit(function() {
  if (!submitValidation()) {
    return false;
  }
});

Из документов:

Отправить событие элемент, когда пользователь пытается отправить форму. Это может быть только прикреплено к элементам. Формы могут быть отправлено либо нажав на Явный <Тип ввода = «Отправить»> , <тип ввода = «изображение»> , или <кнопка Тип = «Отправить»> или нажав Enter Когда определенный элемент формы имеет фокус.

3
ответ дан 18 December 2019 в 09:07
поделиться

Отсутствует открытый API для взаимодействия с WebInspector через DOM или Cocoa. Вы должны подать запрос на расширение по адресу https://bugreport.apple.com/ с запросом этого API.

InspectorController - это также внутренняя информация о реализации WebInspector и его вероятная ошибка на веб-сайте документации.

-121--3579292-

Не проверено, но согласно документации API Rails , может быть, что-то вроде:

class Couple < ActiveRecord::Base
    has_one :person, :foreign_key => :first_person_id
    has_one :person, :foreign_key => :second_person_id
end
-121--3894455-

Вы можете подавить отправку, установив обработчик onsubmit в элементе form , а затем в случае неудачи проверки вернуть значение false.

Таким образом, вы возвращаете значение true, если проверка выполнена успешно, или false, если она завершилась неуспешно, вместо вызова thisForm.submit () .

3
ответ дан 18 December 2019 в 09:07
поделиться
Другие вопросы по тегам:

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