我有一个文本框。它的名字是PhoneNumber。如果len(输入值)= 0,我想做一个弹出窗口。 当我做标签时,它不起作用。 (我看了调试模式) 当我在另一个已经有效的Jq脚本中执行此操作时。它工作但弹出窗口停留屏幕只有几毫秒,所以我什么也做不了。 我是编程新手,我还在学习。如果你帮助我,我会很开心。谢谢。
<script type="text/javascript">
$('#PhoneNumber').bind('keypress', function (e) {
if (e.keyCode == 13) {
var test = $('#PhoneNumber').val().length;
if (test == 0) {
alert('At Least');
/* $('a.login-window').one(function () {
var loginBox = $(this).attr('href');
//Fade in the Popup and add close button
$(loginBox2).fadeIn(300);
//Set the center alignment padding + border
var popMargTop = ($(loginBox).height() + 24) / 2;
var popMargLeft = ($(loginBox).width() + 24) / 2;
$(loginBox).css({
'margin-top': -popMargTop,
'margin-left': -popMargLeft
});
// Add the mask to body
$('body').append('<div id="mask"></div>');
$('#mask').fadeIn(300);
return false;
});
// When clicking on the button close or the mask layer the popup closed
$('a.close, #mask').live('click', function () {
$('#mask , .login-popup').fadeOut(300, function () {
$('#mask').remove();
});
return false;
});*/
}
else
{
alert('At Least');
$("#PhoneNumber").val("");
$('#PhoneNumber').focus();
}
}
});
</script>
答案 0 :(得分:0)
始终将您的jquery代码放入:
$(document).ready(function() {
//Your code
});
这可确保在将事件处理程序附加到元素时加载DOM。
对我而言,return false
回调函数的one
看起来就像fadeIn在它完成之前被杀掉了。
您可以将事件对象e
添加为该函数的参数,然后使用e.stopPropagation()
和e.preventDefault()
代替return false;
,如下所示:
$('a.login-window').one(function (e) {
e.stopPropagation();
e.preventDefault();
//Your code
});