我想在单击inputfield
时淡入带有 JQuery 代码的元素。但是,当选择器放置在表单中时,我似乎无法让它工作。如果我删除表单外部的选择器,它可以正常工作。这有什么工作吗?或者,也许 JQuery 代码不在表单中执行?这是我的代码:
<form action="newBet.jsp" method="get">
<fieldset>
<input id="test" type="submit" name="update" value="✎"/>
<input class="form-control" id="div1" style="display:none;" type="number"/>
</fieldset>
</form>
$(document).ready(function(){
$("#test").click(function(){
$("#div1").fadeIn();
});
});
如果我将选择器放在表单外部#test
它工作正常,但我想在表单内执行 JQuery。
您的表单已提交,这会刷新页面,并且不会让您看到结果。
不要将事件应用于提交按钮,而是将其应用于表单本身并return false
以防止默认行为(提交(:
<form id="test-form" action="newBet.jsp" method="get">
$(document).ready(function(){
$("#test-form").submit(function(){
$("#div1").fadeIn();
return false;
});
});
<input id="test" type="button" name="update" value="✎" />
type="submit" 刷新页面。你想改变类型="按钮">
如果您添加如下preventDefault()
,则可以在表单内输入中获得淡入效果:
$(document).ready(function(){
$("#test").click(function(e){
e.preventDefault();
$("#div1").fadeIn();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="newBet.jsp" method="get">
<fieldset>
<input id="test" type="submit" name="update" value="✎" />
<input class="form-control" id="div1" style="display:none;" type="number" />
</fieldset>
</form>
表单内类型为"submit"的输入的默认行为是提交表单,您可以阻止使用该表单preventDefault()
并在淡入效果后稍后调用。