.post()返回ID不受页面Jquery的影响

时间:2014-09-19 01:12:26

标签: javascript php jquery ajax

这个问题与我在这里提出的问题直接相关: stop click() from happening on a ajax created input

我通过简单地添加if(e.target === this)来找出答案,但是当我选中该框时,现在我的返回响应不会做任何事情。

我的.post返回的新代码是:

$output .= "<table><tr><td>";
$output .= "<input id=\"toedit\" type=\"text\" placeholder=\"$item_to_edit\" size=20>";
$output .= "</td><td>";
$output .= "<input id=\"test_editing_check\" type=\"checkbox\" name=\"test_editing_check\" value=\"test_editing_check\" \>";
$output .= "</td></tr></table>";

但我的Jquery在原始页面上:

$("#testing_editing").click(function(e){
    if (e.target === this) {
        var testhtml = $(this).html();
        var meatseafood = '<?php echo $meatseafood; ?>';
        $.post('edit_order.php', {'itemtoedit':testhtml,'meatseafood':meatseafood}, function(data) { //make ajax call to check_username.php
        $("#testing_editing").html(data); //dump the data received from PHP page
        });
    }
    });
    $("#test_editing_check").click(function(){
        if ( this.checked ) {
            var testvalue = "HI";
            alert(testvalue);
        }
    });

似乎无法在.post()调用返回的复选框上工作。

为了使主页的jquery代码能够识别.post()返回,我需要做些什么吗? 我希望我的语法没有问题,但我在另一个页面上使用了这个(非常基本的)代码(但没有使用.post()调用)并且它工作正常。

基本上,当你单击我的主页写入的div时,它会调用.post()并返回一个可编辑的输入字段和一个复选框。当我单击该复选框时,我希望它进行另一个.post()调用并使用新输入的数据更新数据库。

然而,当我勾选复选框时没有任何反应。

看起来我的ajax返回的代码无法被原始/主页面中的jquery识别。 当我点击复选框以显示它已“读取”输入框并且现在可以通过.post()调用发送该数据以进行处理时,我正在尝试做的测试代码弹出一个警告框。

如果您需要任何其他代码,请告诉我。 虽然所以我不确定为什么它不起作用,这就是为什么我在这里:)

(我想要做的是,用户提交表格,在下一页上,会显示一个“确认框”,上面写着“这是你要用表格提交的内容吗?”如果答案是否定的,他们可以“点击”数据并更改它而无需重新加载页面。点击部分可以工作,但复选框确认“是的,我想将我的数据更改为这个新输入的数据”isn'工作。)

感谢您的帮助。

Derek Conlon

1 个答案:

答案 0 :(得分:0)

尝试在加载复选框后分配事件,如下所示:

$("#testing_editing").click(function(e){
    if (e.target === this) {
        var testhtml = $(this).html();
        var meatseafood = '<?php echo $meatseafood; ?>';
        $.post('edit_order.php', {'itemtoedit':testhtml,'meatseafood':meatseafood}, function(data) { //make ajax call to check_username.php
           $("#testing_editing").html(data); //dump the data received from PHP page

           // This is applied after loading the data from the ajax call
           $("#test_editing_check").click(function(){
              if ( this.checked ) {
                 var testvalue = "HI";
                 alert(testvalue);
              }
            });
        });
    }
    });