2015-12-13 3 views
0

Я пытаюсь предотвратить событие отправки на странице с помощью этого кода, чтобы, если я нажму кнопку ввода, он нажмет на элемент validate.Нажмите событие внутри отправить событие не работает в chrome 47

$(document).ready(function(){ 
$("form").submit(function(event){ 
event.preventDefault(); 
document.getElementById("validate").click();//alert("Something") works fine here 
}); 
}); 

Но, когда я нажал войти сохраняя фокус на любом текстовом поле он отправляет форма с действием присвоенного form.It не препятствует Submit события, как ожидается, в Google Chrome 47. Если я размещу любой alert, а не document.getElementById("validate").click();, тогда он отлично работает. Вот HTML-код для этой страницы

<td align="center" width="100%"> 
<input type="button" value=" Next " id="validate" tabindex="4"> 
<a id="Proceed" href="#" onclick="mojarra.jsfcljs(document.getElementById('form'),{'Form:Proceed':'Form:Proceed'},'');return false"></a> 
<input id="replan" type="submit" name="replan" value="Replan" tabindex="4"> 
</td> 

Так, может кто-нибудь, пожалуйста, объясните, почему это не работает в новой версии хрома (Это работает отлично в хроме 39)

Примечания: Событие для id validate назначается с использованием addEventListener().

ответ

0

В подобных случаях я немного изменился, я улавливаю keydown в текстовом поле и делаю the preventDefault, чтобы форма не была отправлена.

$(document).ready(function(){ 
    $("input[type='text']").keydown(function(evtObj){ 
     var code = (e.keyCode ? e.keyCode : e.which); 
     if (code==13) { 
      e.preventDefault(); 
     } 
    }); 
}); 

Смотрите эту дискуссию по ключевым отлову jQuery - keydown/keypress /keyup ENTERKEY detection?

+0

, если это из-за 'keydown' события, то почему она работает, если я заменить эту строку с любыми другими кодами' т.е. предупреждения() '. Он не отправляет форму, хотя я нажал 'Enter' – Swagatika

+0

. Наверное, я все еще немного смущен тем, что вы пытаетесь выполнить. Вы просто пытаетесь проверить перед подачей? Если это так, в вашей функции выполните проверку. Если valid возвращает true. Если недействительно, выполните e.preventDefault и верните false. – Bindrid

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