如何自动触发按钮点击?

时间:2015-04-28 00:15:04

标签: jquery

我有这个代码在同一个按钮的功能内自动触发按钮的点击事件,这里是按钮的HTML:

<a class="button widget uib_w_4 d-margins icon user black"
data-uib="app_framework/button" data-ver="1" id="btnconnecter"
onclick="mycallback()"  href="" >

以下是mycallback函数的内容:

function mycallback(data) {
    test=false;  
    var eml = document.getElementById("tbemail").value;
    var mp = document.getElementById("tbmdp").value;

    $.each(data.user, function (i,data) 
    {
        if((data.email==eml )&&(data.mdp==mp))   
        test=true;
    });   
    if (test==true)
    {
        $("#btnconnecter").href="#acc";
        $('#btnconnecter').trigger( "click" );   
    }
    else
    intel.xdk.notification.alert("verifier votre email/mot de passe");
}

问题是未触发click事件。有什么问题?

2 个答案:

答案 0 :(得分:0)

尝试添加结束标记和一些文本。这适用于标准html。不确定trigger.io框架是否影响功能。

<a id="btnconnecter" onclick="mycallback()"  href="" >some text</a>

另外,在函数中添加一个简单的行,以查看问题是否未被调用,或者函数逻辑是否无效。当您认为未调用函数时,这始终是确定根本原因的第一步。

alert("in my call back");

答案 1 :(得分:0)

jQuery的.click().trigger("click")功能不像普通点击那样行事;他们没有读取href属性,因此他们无法以这种方式更改页面。解决此问题的最佳方法是将变量window.location.href设置为您要转到的URL。这将导致浏览器刷新并加载所请求的页面。

注意:

我必须添加自己的data对象,因为你没有加入    您发布的代码。

我删除了onclick="callback()"并将所有内容放入jQuery中    事件处理程序,并将JavaScript选择器更改为jQuery    选择。这使得代码更短,更一致。

$("#btnconnecter").click(function(){ 
    var data = {
        "user" : [
            {"email" : "email",
             "mdp" : "motdepasse"},
            {"email" : "email2",
             "mdp" : "motdepasse2"}           
            ]
    }
    var test = false;  
    var eml = $("#tbemail").val();
    var mp = $("#tbmdp").val();

    $.each(data.user, function(k,v) {
        if(v.email == eml && v.mdp == mp) {
            test = true;
        }
    });

    if (test == true) {
        alert("L'email et mot de passe sont corrects.");
        window.location.href = "#acc";
    } else {
        //intel.xdk.notification.alert("Verifier votre email/mot de passe.");
        alert("Verifier votre email/mot de passe.");
    }
});

http://jsfiddle.net/IronFlare/6xc4dff8/