Onclick和jQuery单击协同工作,但返回false不能在jquery中工作

问题描述 投票:-1回答:1

Onclick和jQuery单击协同工作,但返回false不能在jquery中工作。我想在onc​​lick打开下一页之前验证字段。我的代码问题是如果在这种情况下归档是空白的,则打开下一页。我在每个空案例中使用return false。所以直到所有领域都没有填满。下一页不应该打开。

Html代码

<button id="onepage-guest-register-button" type="button" class="button secondary" onclick="$('login:guest').checked=true; checkout.setMethod();"><span><span><?php //echo $this->__('Checkout as Guest') ?></span></span></button>

jQuery代码

   jQuery('#onepage-guest-register-button').click(function(e){
   var email=jQuery('#login-email').val();
   jQuery('.validate-email').attr('value', email);
   var login_name = jQuery('#login_name').val();
   var login_phone = jQuery('#login_phone').val();
   var login_email = jQuery('#login_email').val();
   alert("name"+login_name+'phone'+login_phone+'email'+login_email);
   if(login_name==''){ jQuery('.login_name').text('Please enter full name'); return false; }else{ jQuery('.login_name').empty();}
   if(login_phone==''){ jQuery('.login_phone').text('Please enter Phone Number');return false;}else{ jQuery('.login_phone').empty();}
   if(login_email==''){ jQuery('.login_email').text('Please enter Phone email');return false;}else{ jQuery('.login_email').empty();}
   //alert('trigger');
   jQuery('#onepage-guest-register-button').trigger('onclick');
 });
javascript jquery
1个回答
-1
投票

不要将onclick属性与onclick事件处理程序混合使用。这简直太傻了。

在大多数情况下,最好采用后者。

1)删除onclick属性

<button id="onepage-guest-register-button" type="button" class="button secondary"><span><span><?php echo $this->__('Continue') ?></span></span></button>

2)将逻辑移动到onclick事件处理程序中。

jQuery('#onepage-guest-register-button').click(function(e){
    // no idea
    var email = jQuery('#login-email').val();
    jQuery('.validate-email').attr('value', email);

    // get values
    var login_name = jQuery('#login_name').val();
    var login_phone = jQuery('#login_phone').val();
    var login_email = jQuery('#login_email').val();

    // flag if errors is found; assume no errors by default
    var err = false;

    // clear errors?
    jQuery('.login_name').empty();
    jQuery('.login_phone').empty();
    jQuery('.login_email').empty();

    // show errors if any
    if (login_name == '') { 
        jQuery('.login_name').text('Please enter full name');
        err = true;
    }
    if (login_phone == ''){ 
        jQuery('.login_phone').text('Please enter Phone Number');
        err = true;
    }
    if (login_email == ''){ 
        jQuery('.login_email').text('Please enter Phone email');
        err = true;
    }

    // do the appropriate action depending if there are errors or not
    if (err) {
        return false;
    } else {
        $('login:guest').prop('checked', true); 
        checkout.setMethod();
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.