2013-11-27 125 views
0

我只是在学习Jquery,我想知道是否有人能告诉我我的脚本有什么问题。当用户点击提交表单时,我想要打开两个div标签,并且要包含要关闭的表单。Jquery隐藏/显示不工作

谢谢!

这是脚本

<script> 
    $('#form_container').submit(function() 
    { 
     $('#form_container').hide() 
     $('#mydivhide1, #mydivhide2').show() 
    }); 
</script> 

这些div和形式

<div id="mydivhide1" style="visibility:hidden">1111</div> 
<div id="mydivhide2" style="visibility:hidden">2222</div> 

<div id="form_container"> 
    <form id="form_710370" method="post" convert.php"> 
     <input id="Website" name="url1" type="text" value=""/> 
     <input id="saveForm" type="submit" name="submit" value="submit" /> 
    </form> 
</div> 
+0

它是否会进入你的函数? – Rahul

回答

3

Submitformdiv一样,

$('#form_710370').submit(function(){ 
    $('#form_container').hide() 
    $('#mydivhide1, #mydivhide2').show(); 
    return false; 
}); 

而且hide您使用display:none不是visibility:hiddendiv's

<div id="mydivhide1" style="display:none">1111</div> 
<div id="mydivhide2" style="display:none">2222</div> 

更新如果您scriptwritten之前你DOM elements然后使用一样,

$(function(){ 
    $('#form_710370').submit(function(e){ 
     e.preventDefault(); // add this 
     $('#form_container').hide() 
     $('#mydivhide1, #mydivhide2').show(); 
     return false; 
    }); 
}); 
+0

我同意将提交处理程序附加到表单上更有意义,但它不会在div上工作吗? (即使在IE中,jQuery也会使它起泡。)我认为'visibility'事情可能是真正的问题,假设脚本在DOM准备好后运行。 – nnnnnn

+0

感谢这工作。我还有一个与此相关的问题。在真实页面上,表单目标实际发布到一个Iframe,需要大约30秒的时间才能加载,有没有办法让这个脚本中的隐藏/显示事件延迟,直到加载完成? –

+0

是使用'load()'回调。请参阅http://api.jquery.com/load –

0

它应该是:

$('#form_710370').submit(function() 
{ 
$('#form_container').hide() 
$('#mydivhide1, #mydivhide2').show() 
}) 
+0

这不起作用 - 当用户点击其中一个文本输入时,您会发生什么? – nnnnnn

+0

@nnnnnn:现在更新。 –

0

这里有一个小提琴:http://jsfiddle.net/cdJU9/1/

我已经添加了CSS来隐藏顶部div,我认为隐藏可见性的内联样式重写了JS。

CSS

#mydivhide1, #mydivhide2{ display: none; } 

HTML

<div id="mydivhide1">1111</div> 
<div id="mydivhide2">2222</div> 

小提琴抛出出于某种原因的错误,但你的想法?

+0

谢谢我现在正在尝试 –

0

你可以这样做,请在末尾用分号聚焦你的语法。

<script> 

    $('#saveForm').click(function(){ 
     $(this).parent().hide(); 
     $('#mydivhide1, #mydivhide2').show(); 
     }); 

</script> 
0

应该

<script> 
$('#form_710370').submit(function() 
{ 
    $('#form_container').hide() 
    $('#mydivhide1, #mydivhide2').show() 
    }); 

</script> 
0

你有一个错字在那里:

<form id="form_710370" method="post" convert.php"> 

应该

<form id="form_710370" method="post" action="convert.php"> 

而对于JS:

$('#form_710370').submit(function() { 
    $('#form_container').hide(); 
    $('#mydivhide1, #mydivhide2').show(); 
}) 

编辑:http://jsfiddle.net/GZEmw/