关于jQuery中button标签自动提交form表单的问题

本文探讨了在HTML表单中使用button标签触发jQuery事件导致页面闪退的现象,并提供了解决方案。通过更改button标签的位置或类型,可以避免表单意外提交,确保预期的功能正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在form表单中,当我们将button标签作为事件源,使用jQuery对其绑定一个事件,来造作多选框的同步多选,反选,或者解析输入文本进而匹配相应选项设置时会发现,在点击button之后,结果会出现,但却一闪而过.这是为什么嘛呢?

当我们将form表单的"Method" 属性设置为"get",在地址栏或者查看网页源代码(F12--js)我们会发现:form表单被提交了.但我们我们明明并没有设置任何提交表单事件!

此时我们有两种解决方法:

1.将button标签放到表单之外.

2.将button标签改为 input标签 ,"type"类型设置为"button".

以下是源代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
</head>
<body>
请输入城市:<input type="text" id="id"/> 
<br/><br/>
城市复选框:
<div style="width:200px;background:red;">
	<form>
	<input type="checkbox" name="city" value="北京"/>北京
	<input type="checkbox" name="city" value="南京"/>南京
	<input type="checkbox" name="city" value="上海"/>上海
	</form>
</div>
	<br/>
	<button  onclick="checkCity()">判断</button>
	<!--<input type="button" value="判断" onclick="checkCity()"/>-->
</body>
<script>
	function checkCity(){
		
		$("div input[type='checkbox']").prop("checked",false);
		var cityValue = $("#id").val();		
		$("div input[value='"+cityValue+"']").prop("checked",true);
	}	
</script>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值