Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQueryHTML按钮多次激发函数_Jquery_Html - Fatal编程技术网

jQueryHTML按钮多次激发函数

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

我正在创建一个HTML表单,其中显示一列复选框,单击submit,事件将由jQuery函数拾取。但是,在检查Firebug net面板中的函数后,我注意到即使我只单击一次按钮,该函数也会多次启动!知道为什么吗

HTML:

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'); 
这将删除按钮的单击功能,因此无法多次启动该功能