Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Javascript jQuery表单提交不会返回false_Javascript_Php_Jquery_Mysql_Forms - Fatal编程技术网

Javascript jQuery表单提交不会返回false

Javascript jQuery表单提交不会返回false,javascript,php,jquery,mysql,forms,Javascript,Php,Jquery,Mysql,Forms,目前jQuery有点问题。我有一个表,我的目标是有一个删除按钮,当点击时,它会从mySQL后端删除它。我在功能方面没有问题,我的问题是我不能让jQuery返回false,它一直重定向到我在表单标记中指向的php脚本。请让我知道,如果你能看到一个问题的代码 我设置了一个表结构,这只是为了显示从mysql查询返回的所有行。也许我没有正确设置表单 <?php if (sizeof($rows5) > 0) { foreach($rows5 as $row5): echo"

目前jQuery有点问题。我有一个表,我的目标是有一个删除按钮,当点击时,它会从mySQL后端删除它。我在功能方面没有问题,我的问题是我不能让jQuery返回false,它一直重定向到我在表单标记中指向的php脚本。请让我知道,如果你能看到一个问题的代码

我设置了一个表结构,这只是为了显示从mysql查询返回的所有行。也许我没有正确设置表单

<?php
if (sizeof($rows5) > 0) {
    foreach($rows5 as $row5):
    echo"
<tr class='tableRowClass2'>
<td>{$row5['PackingSlipStarmontID']}</td>
<td>{$row5['fullStarmont']}</td>
<form action='delete/starmont.php' method='post' name='deletestarmontForm' id='deletestarmontForm'>
<td>
    <button id='button3'>Remove</button>
    <input type='hidden' id='PackingSlipStarmontID' name='PackingSlipStarmontID' value='{$row5['PackingSlipStarmontID']}'/>
</td>
</form>
</tr>";
    endforeach;
}
?>
因此,这段代码的工作原理是调用php脚本,SQL查询很好。问题是它重定向到该php页面,而不是在提交时返回false

*编辑***
谢谢大家的帮助。在这和实验之间,我已经解决了这个问题。问题似乎与重复的ID有关。我使用的代码与我发布的代码相同,但是我没有使用ID选择器,而是通过将其更改为类选择器来解决它,您不能多次使用相同的ID。所以,请注意,我已经将ID更改为Class

<?php
if (sizeof($rows5) > 0) {
    foreach($rows5 as $row5):
    echo"
<tr class='tableRowClass2'>
<td>{$row5['PackingSlipStarmontID']}</td>
<td>{$row5['fullStarmont']}</td>
<td>
    <button class='button3'>Remove</button>
    <input type='hidden' id='PackingSlipStarmontID' name='PackingSlipStarmontID' value='{$row5['PackingSlipStarmontID']}'/>
</td>
</tr>";
    endforeach;
}
?>

表单将由$.post提交,但event.prevenDefault()将禁止提交表单。

不能多次使用同一ID。所以,请注意,我已经将ID更改为Class

$(document).ready( function() {
    $("#button3").click( function() {
        $.post( $("#deletestarmontForm").attr("action"), 
            $("#deletestarmontForm :input").serializeArray(), 
            function(info){
                $("#result4").html(info); 
           });
        });
        $("#deletestarmontForm").submit( function() {
            return false;   
        });
        function clearInput() {
        $("#deletestarmontForm :input").each( function() {
           $(this).val('');
        });
    }
});
<?php
if (sizeof($rows5) > 0) {
    foreach($rows5 as $row5):
    echo"
<tr class='tableRowClass2'>
<td>{$row5['PackingSlipStarmontID']}</td>
<td>{$row5['fullStarmont']}</td>
<td>
    <button class='button3'>Remove</button>
    <input type='hidden' id='PackingSlipStarmontID' name='PackingSlipStarmontID' value='{$row5['PackingSlipStarmontID']}'/>
</td>
</tr>";
    endforeach;
}
?>

表单将由$.post提交,但event.prevenDefault()将抑制要提交的表单。

默认操作是转到要阻止的表单页面

$(document).ready( function() {
    $("#button3").click( function() {
        $.post( $("#deletestarmontForm").attr("action"), 
            $("#deletestarmontForm :input").serializeArray(), 
            function(info){
                $("#result4").html(info); 
           });
        });
        $("#deletestarmontForm").submit( function() {
            return false;   
        });
        function clearInput() {
        $("#deletestarmontForm :input").each( function() {
           $(this).val('');
        });
    }
});
$("#button3").click( function(e) {
    e.preventDefault();
    // rest of submit stuffs
});

默认操作是转到要阻止的表单页面

$("#button3").click( function(e) {
    e.preventDefault();
    // rest of submit stuffs
});

您可以尝试此
e.preventDefault()

$(“#按钮3”)。单击(功能(e){

e、 preventDefault();//您可以尝试此
e.preventDefault()

$(“#按钮3”)。单击(功能(e){

e、 preventDefault();//表单操作导致它转到php页面.us jQuery以抑制默认操作,因为您正在让按钮运行您的函数

 $("#deletestarmontForm").submit( function() {
  return false;
  event.preventDefault();
});

我想应该是这样的。

表单操作导致它转到php页面。我们jQuery禁止默认操作,因为您正在让按钮运行您的函数

 $("#deletestarmontForm").submit( function() {
  return false;
  event.preventDefault();
});

我想我会的。

虽然所有其他答案都很好地说明了使用
e.preventDefault
,但我不认为这是您的问题的原因。
返回false;
应该做您想做的事情就好了。您可以看到您的代码在这方面工作。我猜您的代码中还存在其他问题。可能JS错误(检查控制台)这会阻止处理程序正确运行,因此回退行为是原始表单提交。

虽然所有其他答案都很好地使用了
e.preventDefault
,但我认为这不是问题的原因。
返回false;
应该可以满足您的要求。您可以看到您的代码在这种情况下有效。我猜您的代码中还存在其他问题。可能是JS错误(请检查您的控制台)阻止了处理程序的正确行为,因此回退行为是原始表单提交。

e.preventDefault()
在返回false之前?
Id
应该始终是唯一的。
event.preventDefault()
将在单击功能中完成此项工作。为什么您要使用
单击
处理程序来处理按钮,而不是将
提交
处理程序用于所有操作?然后您可以只添加
e.preventDefault
作为该处理程序中的第一行代码。因此,请使用.submit并将e.preventDefault添加为第一行?
 e.preventDefault()
在返回false之前?
Id
应该始终是唯一的。
event.preventDefault()
将在单击功能中完成此项工作。为什么您要使用
单击
处理程序来处理按钮,而不是将
提交
处理程序用于所有操作?然后您可以将
e.preventDefault
添加为该处理程序中的第一行代码。因此,请使用。提交并将e.preventDefault添加为第一行?Unfo当然,这不起作用。我相信这与foreach循环中的表单有关。但我可能错了?你是对的。我更新了答案。请让我知道它是如何工作的。这确实起作用,但它似乎没有传递隐藏文本框的值。有没有一种方法可以专门告诉它输入框的id,即。“PackingSlipTarmontId…我想说的是,当它重定向时,SQL语句的执行是成功的,而现在它失败了。不幸的是,这不起作用。我相信这与foreach循环中的表单有关。不过我可能错了?你是对的。我更新了答案。请让我知道它是如何工作的。这与但是,ork似乎没有传递隐藏文本框的值。是否有一种方法可以专门告诉它输入框的id,即“PackingSlipStarmontID…”我要说的是,当它重定向时,SQL语句的执行是成功的,而现在它失败了