Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
Php 通过函数调用,单击用font awesome创建的按钮,防止表单提交_Php_Jquery_Html_Font Awesome - Fatal编程技术网

Php 通过函数调用,单击用font awesome创建的按钮,防止表单提交

Php 通过函数调用,单击用font awesome创建的按钮,防止表单提交,php,jquery,html,font-awesome,Php,Jquery,Html,Font Awesome,我试图在单击按钮时使用jquery从表中删除一行。当用户单击+提交按钮时,将动态生成该行 现在,当点击按钮时,表单被提交。我正试图用一个错误的返回来阻止它。(不确定如何在onclick中实现防止默认值) 我试过两段代码。使用onlick='return false;'在按钮标签上,它可以正常工作。当我尝试用它添加函数调用时,它会继续提交表单,我对此束手无策 不起作用的变体1: $('#tbl').append( "<tr

我试图在单击按钮时使用jquery从表中删除一行。当用户单击+提交按钮时,将动态生成该行

现在,当点击按钮时,表单被提交。我正试图用一个错误的返回来阻止它。(不确定如何在onclick中实现防止默认值)

我试过两段代码。使用onlick='return false;'在按钮标签上,它可以正常工作。当我尝试用它添加函数调用时,它会继续提交表单,我对此束手无策

不起作用的变体1:

$('#tbl').append(                              
   "<tr id='"+countCourses+"'>"+
   "<td><button onclick='return delete_row();' style='border: 0; background: none;'>"+                              
   "<i class='fa fa-minus-circle fa-lg' style='color:red' ></i></button></td>");

function delete_row(){
 alert('hello');
 return false;
};
$('#tbl').append(                              
   "<tr id='"+countCourses+"'>"+
   "<td><button onclick='return delete_row(); return false;' style='border: 0; background: none;'>"+                              
   "<i class='fa fa-minus-circle fa-lg' style='color:red' ></i></button></td>");

function delete_row(){
 alert('hello');
};
$('#tbl')。附加(
""+
""+                              
"");
函数delete_row(){
警惕(“你好”);
返回false;
};
变更2(也不起作用):

$('#tbl')。附加(
""+
""+                              
"");
函数delete_row(){
警惕(“你好”);
};
我还同时在两个地方尝试了返回false,但这也不起作用。我做错了什么

我尝试的最后一件事是,这也不会停止提交:

"<td><button class='remove' style='border: 0; background: none;'>"

$(document).ready(function(){
  $('.remove').click(function(event){
    event.preventDefault();
    alert('test');
    // var num = $(this).attr('value');
    // console.log(num);
    // $("#"+num).remove(); 

    });
});
“”
$(文档).ready(函数(){
$('.remove')。单击(函数(事件){
event.preventDefault();
警报(“测试”);
//var num=$(this.attr('value');
//console.log(num);
//$(“#”+num).remove();
});
});

为什么不为此使用jQuery:

(函数($,文档){
$(文档).ready(函数($){
var countCourses='course-1';//ID不应以数字开头(用于测试)
$('tbl')。附加(
""+
""+
""+                              
""+
""+
""+
“Foobar”+//用于测试
“”//用于测试
);
$('#tbl')。在('click','button[name=“submit_delete”]”上,函数(e){
//return;//--在某些条件下,只需在remove操作之前返回即可
$(this).closest('tr').remove();//找到离按钮最近的父tr并将其删除
});
});
})(jQuery,文档)
td{边框:1px纯黑;}


这确实有效!谢谢使用后跟按钮名称的表可以工作。不知道为什么使用该类不起作用。。。有什么想法吗?正如我提到的
A
你的按钮在问题中没有这个类,而
B
是一个动态元素,所以你必须使用事件委派/传播的东西。。。这里有一个链接,里面有更多的信息。如果你用我的名字来交换一个类,它基本上可以工作。我不喜欢仅仅为了选择而向DOM中添加虚假类。这使得以后很难判断哪些类实际附加了真正的CSS。事实上,对于事件委派,如果没有其他按钮,您甚至不需要名称,只需
按钮
<代码>$('#tbl')。在('click','button',函数(e){
,因为这只会拾取
#tbl
中的事件。这与您拥有的
$('button')之间的主要区别。单击(function()
查看我的事件实际上是如何绑定到表的。。。