我有一个显示表单的灯箱/模式,但是在select标签中有一个回拨调用,它会保持关闭我的灯箱。有没有办法阻止使用JavaScript的回发调用。
$(document).ready(function () {
var display = $('.lightbox-overlay').css('display');
$('.lightbox').click(function (e) {
if ($('.lightbox-overlay').length != 0) {
$("body").css("overflow", "hidden");
}
$('.lightbox-overlay').animate({ 'opacity': '.9' }, 300, 'linear');
$('.dialog-ui').animate({ 'opacity': '1.00' }, 300, 'linear');
$('.lightbox-overlay, .dialog-ui').css('display', 'block');
e.preventDefault();
});
$('.close-btn').click(function () {
closeBox();
});
$('.lightbox-overlay').click(function () {
closeBox();
});
});
function closeBox() {
$('.lightbox-overlay, .dialog-ui').css('display', 'none');
$("body").css("overflow", "visible");
}
HTML
<a class="lightbox click-here-link" href="#">click here</a>
<div class="dialog-ui">
<div class="inner">
<a class="close-btn" href="#">close</a>
<h3>Build your product</h3>
<div class="data-row clearfix"> <span class="product-build-steps">1</span><span id="ctl21_pb_LBL_og1150"><label>Select Hand</label></span> <select id="ctl21_pb_DDL_og1150" onchange="javascript:setTimeout('__doPostBack(\'ctl21$pb_DDL_og1150\',\'\')', 0)" name="ctl21$pb_DDL_og1150"> <option value="HRH" selected="selected">Right Hand</option> <option value="LRH">Left Hand (+£1.99)</option>
</select>
答案 0 :(得分:2)
$('#selectTag').change(function(e){
e.preventDefault();
});
这样,选择停止做它应该做的事情
试试这个:
var container = //dom selector for the div or whatever that has all the selects
$(container).find('select').each(function(){
$(this).removeAttr('onchange');
});
如果这是ASP.NET,则在onclick属性上声明__doPostBack()函数,这样就可以避免回发。
答案 1 :(得分:0)
您可以从form
提交处理程序返回false以防止表单被发布。试试这个。
$('form').submit(function(){
//You might have to add some condition here before returning false
return false;
});