2016-06-22 2 views
1

Я пытаюсь сделать какую-то форму. Пользователь должен щелкнуть, чтобы отправить данные дальше, но когда пользователь нажимает 'enter', он возвращает ошибку.Запуск функции .click с enter

Сценарий:

$('a.rec_submit').click(function(){ 
    form_update_mail(1); 
    $('input.rec_submit_actual').click(); 
    return false; 
} 

HTML:

<a  class="rec_submit">SEND</a> 
<input class="rec_submit_actual" type="submit" /> 

Я искал немного, и обнаружили, что я могу использовать KeyUp функцию для того, чтобы 'войти', чтобы работать также.

пример:

$('a.rec_submit').on('keyup click', function(e){ 
    if (e.which === 13 || e.type === 'click') { 
    form_update_mail(1); 
    $('input.rec_submit_actual').on('keyup click', function(); 
    return false; 
)} 
}); 

Но это не работает. Может кто-нибудь объяснить, что я делаю неправильно?

///// EDIT

Ни один из ответов не работают.

Форма не хочет передавать электронное письмо далее с «enter», при этом «щелчок» работает очень хорошо.

Ошибка идет: адрес электронной почты не является действительным

Полный сценарий:

/*function form_update_mail() 
{ 
var tresc_maila=''; 
$('#body_mail').val(tresc_maila); 
};*/ 
var mail_string = ''; 

function form_update_mail(x) { 
mail_string += $('input#component_recommend_to').val() + ','; 
if (x == 1) mail_string = mail_string.substring(0, mail_string.length - 1); 
$('#component_recommend_to_actual').val(mail_string); 
} 
$(document).ready(function() { 
$('a#suggestproduct').click(function() { 
    $(this).parent().fadeOut(500); 
}); 
$('div.projektor_left_frame a, a.u10_polec').click(function() { 
    $('div#component_projector_suggestproduct2').fadeIn(500); 
    return false; 
}); 
$('#component_recommend input').click(function() { 
    if ($(this).attr('value') == 'wpisz e-mail' || $(this).attr('value') == 'wpisz imię') $(this).attr('value', ''); 
}); 
$('a.recommend_add_next').click(function() { 
    form_update_mail(0); 
    $('input#component_recommend_to').attr('value', ''); 
    $('input#component_recommend_name_to').attr('value', ''); 
    return false; 
}); 
$('a.rec_submit').keypress(function(e) { 
    if (e.which == 13 || e.which == 1) { 
     form_update_mail(1); 
     $('input.rec_submit_actual').click(); 
     return false; 
    } 
}); 
$('#component_recommend_body').val(tresc_maila); 
tresc_maila = 'x'; 
$('#component_recommend_body').val(tresc_maila); 
if ($('div.sender_email').length) $('#component_recommend_email').val($('div.sender_email').text()); 
if ($('div.sender_name').length) $('#component_recommend_name').val($('div.sender_name').text()); 
}); 

HTML:

<div id="component_recommend"> 
    <form action="contact.php" method="post"> 
     <input name="suggest_shop" type="hidden" value="submit"> 
     <div class="rec_main"> 
      <div class="rec_sub"> 
       <div style="margin-top: 30%; margin-bottom: 2%; font-size: 1.4em;"> 
        Data 1: 
       </div> 
       <input id="component_recommend_name" name="firstname" type="text" placeholder="Your name" class="rec_form" /><br /> 
       <input id="component_recommend_email" name="email"  type="text" placeholder="Your e-mail" style="margin-top: 5%" class="rec_form" /> 
       <div style="margin-top: 8%; margin-bottom: 2%; font-size: 1.4em;"> 
        Data 2: 
       </div> 
       <input  id="component_recommend_name_to" name="name_to" type="text" placeholder="His name" class="rec_form" /><br /> 
       <input  id="component_recommend_to"       type="text" placeholder="His email" style="margin-top: 5%" class="rec_form" /> 
       <input  id="component_recommend_to_actual" name="to"  type="text" placeholder="His email" style="display: none;" class="rec_form" /> 
       <textarea id="component_recommend_body"  name="body"></textarea> 
       <a   class="rec_submit">SEND</a> 
       <input  class="rec_submit_actual" type="submit" /> 
      </div> 
     </div> 
    </form> 
</div> 

Дело закрыто Благодаря @Mohit Bhardwaj работает

Правильное код:

$('a.rec_submit').click(function(){ 
form_update_mail(1); 
$('input.rec_submit_actual').trigger("click"); 
return false; 
}); 

$('a.rec_submit').on('keyup', function(e){ 
var code = e.keyCode ? e.keyCode : e.which; 
if (code == 13) { 
form_update_mail(1); 
$('input.rec_submit_actual').trigger("click"); 
    return false; 
} 
}); 
+1

почему не просто 'rec_submit_actual' и стиль его как' Ā'? – BenG

+0

http://stackoverflow.com/questions/15802858/jquery-call-function-if-enter-hit посмотреть здесь – MrBuggy

+0

@BenG - Ну, это довольно сложно. Это часть более сложной совместной работы, и есть некоторые вещи, которые я не должен менять, потому что они связаны с несколькими другими, и это может вызвать некоторые помехи в группе. – Rahtid

ответ

0

Вы столкнулись этим вопросом, потому что, когда вы обращаетесь как KeyUp и нажмите событие, вы проверяете, для которых была нажата клавиша, и только выполнить код, если ввести ключ был нажат , Но в случае ввода также это возвращает false, и, следовательно, ваш код не выполняется.

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

$('a.rec_submit').click(function(){ 
    form_update_mail(1); 
    $('input.rec_submit_actual').trigger("click"); 
    return false; 
}//click 

$('.rec_main input[type=text]').on('keyup', function(e){ 
    var code = e.keyCode ? e.keyCode : e.which; 
    if (code == 13) { 
     $('input.rec_submit_actual').trigger("click"); 
     form_update_mail(1); 
     return false; 
    } 
}); 
+0

пробовал, что не только «вводить» по-прежнему не работает, нажмите «стоп», запуская что-либо. – Rahtid

+0

@Rahtid. Попробуйте сейчас. Я обновил код. , –

+0

То же самое, когда я нажимаю 'enter', он говорит, что адрес электронной почты недействителен, и когда я нажимаю кнопку, ничего не происходит. Я пытался попасть в «contact.php», который обрабатывает данные, но это не моя часть проекта atm, а ответственный за него человек находится в автономном режиме – Rahtid

1

попробовать это

$('a.rec_submit').click(function(){ 
    form_update_mail(1); 
    $('input.rec_submit_actual').trigger("click"); 
    return false; 
} 
+0

попробовал, что не только «вводить» по-прежнему не работает, нажмите «перестает» запускать что-либо. – Rahtid

0

попробовать это

$('a.rec_submit').on('keyup', function(e){ 
     if (e.which === 13 || e.type === 'keyup') { 
      form_update_mail(1); 
      $('input.rec_submit_actual').click(); 
      return false; 
     } 
}); 
+0

попытался, что не только «войти» по-прежнему не работает, нажмите «остановить», вызывая что-либо – Rahtid

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