2016-05-30 30 views
1

我有2个输入框是jQuery dblclick()问题?

一)电子邮件和
B)private_email

,我想显示警告消息1时,在电子邮件领域用户双击和2当private_email领域用户双击。所以,我使用下面的jQuery代码,但它仅显示1警报消息:

jQuery代码:

$(document).ready(function(){ 
    $("input#email, input#email_private").dblclick(function(){ 
    var email = $("input#email").val(); 
    var private_email = $("input#email_private").val(); 
    var cdid = $("#cdid_hidden").val();  
    var cid=$('#cdid_hidden').val(); 

    if(email) { 
     alert(1); 
     window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
    } else { 
     window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
     alert(2); 

    }  

    var url = "response.php?confirmEmail=confirm&cdid="+cdid; 
    $.get(url); 
    getDetails(cid);  

    }); 
}); 
+0

也许有在'窗口中存在错误。打开('mailto:<?php echo $ res ['email'];?>?subject =','_self');'。 – Blank

回答

1

只要检查点击的元素is()其中之一,并相应地执行。

$(document).ready(function(){ 
    $("input#email, input#email_private").dblclick(function(){ 
    var email = $("input#email"); 
    var emailVal = email.val(); 
    var private_email = $("input#email_private").val(); 
    var cdid = $("#cdid_hidden").val();  
    var cid=$('#cdid_hidden').val(); 

    if($(this).is(email)) { 
     alert(1); 
     window.open('mailto:<?php echo $res['emailVal']; ?>?subject=', '_self'); 
    } else { 
     window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
     alert(2); 

    }  

    var url = "response.php?confirmEmail=confirm&cdid="+cdid; 
    $.get(url); 
    getDetails(cid);  

    }); 
}); 
0

恕我直言,这将是更容易有两个DBLCLICK处理程序。话虽这么说,在你的代码,即使你正在听的两个输入你只检查DblClick事件的电子邮件输入是否为空

if(email) { 
    alert(1); 
    window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
} else { 
    window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
    alert(2); 

} 

如果你不希望有单独的事件处理程序你可以尝试检查的ID类似

$(document).ready(function(){ 
    $("input#email, input#email_private").dblclick(function(){ 
    var email = $("input#email").val(); 
    var private_email = $("input#email_private").val(); 
    var cdid = $("#cdid_hidden").val();  
    var cid=$('#cdid_hidden').val(); 
    var clicked = $(this).attr('id'); 
    if(clicked == 'email') { 
     alert(1); 
     window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
    } else { 
     window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
     alert(2); 

    }  

    var url = "response.php?confirmEmail=confirm&cdid="+cdid; 
    $.get(url); 
    getDetails(cid);  

    }); 
}); 
0

我猜你要根据相关的输入双击自动显示警告1和2。我已经修改了你的代码实现的..

jQuery的:

$(document).ready(function(){ 
    $("input#email, input#email_private").dblclick(function(){ 

    var private_email = $("input#email_private").val(); 
    var cdid = $("#cdid_hidden").val();  
    var cid=$('#cdid_hidden').val(); 

    if($(this).attr('id') == 'email') { 
    alert(1); 
    window.open('mailto:<?php echo $res['email']; ?>?subject=', '_self'); 
    } else { 
    window.open('mailto:<?php echo $res['email_private']; ?>?subject=', '_self'); 
    alert(2); 
    }  

var url = "response.php?confirmEmail=confirm&cdid="+cdid; 
$.get(url); 
getDetails(cid);  
}); 
}); 
0

您可以改为通过获取元素的ID来检查哪个元素触发了事件。然后在if语句中,您可以检查元素ID并返回适当的操作。这里是一个片段如何实现这一目标

HTML代码

<div> 
    <input type="text" placeholder="Email here" id="email" /> 
</div> 
<div> 
    <input type="text" placeholder="Email Private here" id="email_private" /> 
</div> 

jQuery代码

$(document).ready(function() { 
$('input#email, input#email_private').dblclick(function (event) { 
    alert("Double clicked"); 

    if (event.target.id === 'email') { 
     alert("Email double clicked"); 
     // Email textbox triggered the event 
     // Do something 
    } 
    else if (event.target.id == 'email_private') { 
     alert("Email Private double clicked"); 
     // Email private triggeredd this event, do something here 
    } 
    }); 
}); 

这里是一个jsfiddle for it