使用enter触发.click功能

时间:2016-06-22 10:44:33

标签: javascript jquery html

我正试图制作某种形式。用户必须单击以进一步发送数据,但是当用户按“输入”时,它将返回错误。

脚本:

$('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函数来让'enter'也能工作。

示例:

$('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;
)}
});

然而这不起作用。有人能解释我做错了吗?

///// 修改

没有一个答案可行。

表单不希望通过'enter'进一步传递电子邮件,使用'click'它可以正常工作。

错误:电子邮件地址无效

完整脚本:

/*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;
}
});

3 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:0)

您正面临这个问题,因为您正在处理键盘和点击事件,您正在检查按下了哪个键,并且只有在按下回车键时才执行代码。但是如果同时输入,则返回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;
    }
});

答案 2 :(得分: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;
        }
});