2016-12-21 4 views
1

В настоящее время у меня есть работающий валидация JavaScript, так что форма не будет удалена без хотя бы одного флажка. Он выдает сообщение пользователю, чтобы убедиться в том, что вы выбрали в аренду одного пользователя.Стоп-страница из перезагрузки при неудачной проверке

Что бы я хотел сделать сейчас, это остановить форму от выполнения чего-либо еще, она, похоже, перезагрузит страницу после того, как я нажму кнопку «Отправить», и было бы предпочтительнее, если бы это не было сделано.

мой текущий код выглядит следующим образом:

Форма:

<form name="frm_multi_message_form" id="multi_message_form" style="margin-bottom: 0px;" method="post"><button style="border-style: none; margin: 5px 0 5px 0;" type="submit" action="" onClick="checkForm(this);" >Message multiple sitters</button> 
    </form> 

My Javascript:

function checkForm(form) 
     { 

    if (document.querySelector('form[id="multi_message_form"] input[name="username[]"]:checked')) { 
      document.frm_multi_message_form.action = "http://example.com/another-page/"; 
      document.frm_multi_message_form.submit(); 
     } else { 
      alert("You must select at least one sitter to message"); 

     } 
    return false; 
     } 

я не имею проблему метание предупреждение, а форма представляет, Я хотел бы знать, как отключить preventDefault (или это не разрешено в запросе javascript?), Если бы я мог, поэтому ничего не произошло, кроме отображаемой ошибки.

+0

preventDefault() остановит форму представления и после того, как ваша проверка сделано, вам необходимо повторно отправить вашу форму –

ответ

1

Вы должны использовать onClick="return checkForm(this);" и ваша форма не будет представлен в случае ошибки проверки

+0

Спасибо за это. Это был самый простой способ использования и протестирован и теперь работает так, как ожидалось на этой странице. –

+0

приветствую :) –

0

Вам нужен обработчик событий на форме представления, чтобы предотвратить поведение по умолчанию (подчинение):

document.getElementById('multi_message_form').addEventListener('submit', function(evt) { 
    evt.preventDefault(); 
}) 
0

использовать «возвращают ложь» после проверки, как

$("#formId").submit(function() 
{ 
if(someField == "") 
{ 
$("#divId").text 
return false; 
} 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^