使用jQuery,在(document).ready中,我为我的asp.net(aspx)页面的所有按钮分配了一个click函数。 当我单击外面的按钮时,该功能正常工作。 单击窗体中的按钮时,它不起作用。为什么呢?
这是我的default.aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="jQuery._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("button").click(function () {
$("input").before("ciao");
});
});
</script>
</head>
<body>
<button id="Button1">Button BEFORE Form</button>
<button id="Button2">Another BEFORE Form</button>
<form id="form1" runat="server">
<button id="btStart">Button in Form</button>
<div>
<input type="text" value="I like number 1" />
<input type="text" value="Smile to number 2" />
</div>
</form>
</body>
</html>
我正在使用Visual Studio 2010.我也尝试过使用jQuery 1.4.2,同样的问题。
谢谢你让我知道,干杯。
答案 0 :(得分:4)
由于您单击<form>
中的按钮,因此会触发提交操作。尝试添加
return false;
后
$("input").before("ciao");
以防止与该点击事件相关的默认操作。
答案 1 :(得分:1)
它应该可以工作,但按钮只是提交和刷新,所以你没有注意到它。由于你使用asp.net,你只需使用asp:Button
就可以做到:
<asp:Button ID="yourButton"
OnClientClick="$('input').before('ciao'); return false;" Text="Test" />