Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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管理表数据_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jQuery管理表数据

Javascript jQuery管理表数据,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在尝试管理表数据(使用可用的语言)时遇到一些错误。以下是我所拥有的: HTML: 删除 和jQuery: $("#add_language").click(function(){ var langId = langId + 1; var row ='<tr><td><div class="input text"><input type="text" id="Setting3Value'+langId+'Language" rel="

我在尝试管理表数据(使用可用的语言)时遇到一些错误。以下是我所拥有的:

HTML:


删除
和jQuery:

$("#add_language").click(function(){
    var langId = langId + 1;
    var row ='<tr><td><div class="input text"><input type="text" id="Setting3Value'+langId+'Language" rel="" value="" name="data[Setting][3][value]['+langId+'][language]"/></div></td><td><div class="input text"><input type="text" id="Setting3Value'+langId+'Alias" rel="" value="" name="data[Setting][3][value]['+langId+'][alias]"/></div></td><td></td><td><button class="delete-lang ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" role="button" aria-disabled="false" title="Delete"><span class="ui-button-icon-primary ui-icon ui-icon-trash"/><span class="ui-button-text">Delete</span></button></td></tr>';
    $('#languages').append(row);
     return false;
});

$( ".delete-lang" ).button({
            icons: {
                primary: "ui-icon-trash"
            },
            text: false
        });

$( ".delete-lang" ).click(function(event){
    event.preventDefault();
    $(this).parents('tr').first().remove();
});
$(“#添加语言”)。单击(函数(){
var langId=langId+1;
var row='Delete';
$(“#语言”)。追加(行);
返回false;
});
$(“.delete lang”)。按钮({
图标:{
主:“ui图标垃圾”
},
文本:false
});
$(“.delete lang”)。单击(函数(事件){
event.preventDefault();
$(this.parents('tr').first().remove();
});
目前它正在工作,除了删除按钮-删除刚插入的行时,我得到提交的表单,它不会运行
event.preventDefault()并提交表单。如何解决这个问题

此外,我应该添加一些排序行,但也对它们进行排序输入中的
name
值应该更改。如何使
可排序
事件更改输入名称


我不确定这是否是管理表内数据的最佳方法,但如果有更好、更简单的方法,请建议。

对于动态添加的行(即页面加载时DOM不可用),您需要将事件委托给静态父元素。如果您使用的是jQuery 1.6或更高版本,那么您可以使用
delegate()
、1.7或更高版本,您可以使用
on()

试试这个:

$("#languages").delegate(".delete-lang", "click", function(event) {
    event.preventDefault();
    $(this).parents('tr').first().remove();
});
或在jQ1.7中:

$("#languages").on("click", ".delete-lang", function(event) { 
    // rest of your code....

这是假设代码中的
tbody#languages
元素没有通过jQuery追加。如果是,请尝试其他选择器。

感谢Rory提供的委托功能。它将在将来帮助我

康斯坦丁。看看这个问题,如果它对你有帮助的话。我想避免使用Live函数,所以我做的事情与已经接受的答案有点不同。

$("#languages").on("click", ".delete-lang", function(event) { 
    // rest of your code....