jQueryHTML按钮多次激发函数
我正在创建一个HTML表单,其中显示一列复选框,单击submit,事件将由jQuery函数拾取。但是,在检查Firebug net面板中的函数后,我注意到即使我只单击一次按钮,该函数也会多次启动!知道为什么吗 HTML:jQueryHTML按钮多次激发函数,jquery,html,Jquery,Html,我正在创建一个HTML表单,其中显示一列复选框,单击submit,事件将由jQuery函数拾取。但是,在检查Firebug net面板中的函数后,我注意到即使我只单击一次按钮,该函数也会多次启动!知道为什么吗 HTML: echo "<form id='massHoursSubtraction'>"; echo "How many hours to subtract? <input type='text' name='hours'><br />"; $entr
echo "<form id='massHoursSubtraction'>";
echo "How many hours to subtract? <input type='text' name='hours'><br />";
$entries = 1;
while($row = mysql_fetch_array($members)) {
$studentID = $row['studentid'];
echo "<input type='checkbox' name='studentID[]' id='' value='$studentID'>$studentID";
echo "<br />";
$entries++;
}
echo "<input type='button' id='submitValues' value='Submit' onclick='javascript:getHours($entries);' />";
echo "</form>";
以下是Firebug网络面板的屏幕截图:
这是
$\u POST
字符串:hours=1&studentID%5B%5D=5112244
您在按钮上有一个onclick
属性,然后在jQuery中注册单击事件。因此,每次单击按钮时,都会向单击事件添加至少一个侦听器。第一次单击,您添加一次,第二次,您再添加2次,总共4次,但是这次处理程序将实际触发(它不是第一次,因为它正在注册)
从按钮中删除onclick
属性,并完全删除该功能,这样您只有:
$(document).ready(function() {
$("#submitValues").click(function(){
var str = $("#massHoursSubtraction").serialize();
alert("How many times?");
$.post("output.php", str);
});
});
按钮上有一个
onclick
属性,然后在jQuery中注册单击事件。因此,每次单击按钮时,都会向单击事件添加至少一个侦听器。第一次单击,您添加一次,第二次,您再添加2次,总共4次,但是这次处理程序将实际触发(它不是第一次,因为它正在注册)
从按钮中删除onclick
属性,并完全删除该功能,这样您只有:
$(document).ready(function() {
$("#submitValues").click(function(){
var str = $("#massHoursSubtraction").serialize();
alert("How many times?");
$.post("output.php", str);
});
});
这是因为每次单击元素
submitValues
时,它都会在那里附加一个click处理程序。这就是你额外活动的来源。你应该这样做:
echo "<input type='button' id='submitValues' value='Submit' />"
这是因为每次单击元素
submitValues
时,它都会在那里附加一个click处理程序。这就是你额外活动的来源。你应该这样做:
echo "<input type='button' id='submitValues' value='Submit' />"
将以下行放在正在调用的函数中
$("#IdofButton").removeAttr('onclick');
这将删除按钮的单击功能,因此它不能多次启动该功能。将以下行放在正在调用的函数中
$("#IdofButton").removeAttr('onclick');
这将删除按钮的单击功能,因此无法多次启动该功能