我有一个模式弹出窗口,我想在单击“阴影”时将其隐藏,而不在单击内容时将其隐藏。为此,我有:
$('#shade').click(function(){
$('#shade').fadeOut();
}).children().click(function(e){
return false;
});
问题是我有一个要提交的表单,此代码阻止了表单的提交,所以我有:
$('#shade-form-submit').click(function(){
document.getElementById('shade-form').submit();
});
但是,这会在控制台中导致以下错误:
[13:07:21.145] TypeError: document.getElementById(...).submit is not a function @ ...
这是怎么回事?作为参考,我的
<form>
标记:<form action='.' method='post' id='shade-form'>
<div>
<input type='text' />
</div>
<div>
<div>
<input type='submit' />
</div>
</div>
</form>
最佳答案
您需要从children()
上的点击处理程序中排除表单输入:
$('#shade')
.click(function(){
$('#shade').fadeOut();
})
.children().not(':input').click(function(e){
return false;
});