j查询未定义的值



显示此错误消息:

id=35&字段=未定义&值=未定义

我不知道为什么它不读取值。这个表是用jQuery实时"生成"的。

$(document).on('click', '.edit_tr', function() {
    var ID=$(this).attr('id');
    $("#label_"+ID).hide();
    $("#pen_"+ID).hide();
    $("#input_"+ID).show();
    }).change(function()
    {
    var ID = $(this).attr('id');
    var IID = document.getElementById("iid").value;
    var data=$("#input_"+ID).val();
    var dataString = 'id=' + IID + '&field=' + ID + '&value=' + data;
    $.ajax({
        type: "POST",
        url: "updnames.php",
        data: dataString,
        cache: false,
        success: function(html)
        {
        $("#label_"+ID).html(data);
        document.getElementById("pen_"+ID).src="img/dotOK.png";
       document.getElementById("pen_"+ID).width="16";
        },
        error: function(data)
        {
        alert("Error!" + dataString);
        }
    });
    });
    // Klick innerhalb des Labels
    $(".editbox").mouseup(function()
    {
    return false
    });
    // Klick auserhalb des Inputfeldes
    $(document).mouseup(function()
    {
    $(".editbox").hide();
    $(".text").show();
    $(".pen").show();
    });

我想用数据实时更新表。这是 HTML:

<table class="edit_tab" id="edit_tab">
                    <input type="hidden" value="<?php echo $row[0]; ?>" id="iid" />
                    <tr class="edit_tr odd" id="name">
                        <td>Name:</td>
                        <td>
                        <span id="label_name" class="text">
                            <?php echo $row[3]; ?>
                        </span>
                        <input type="text" value="<?php echo $row[3]; ?>" class="editbox form-control" id="input_name" style="display: none;" />
                        </td>
                        <td class="edit_pen">
                            <img src="pen.png" class="pen" id="pen_name" />
                        </td>
                    </tr>

                    <tr class="edit_tr" id="number">
                        <td>Nummer:</td>
                        <td>
                        <span id="label_nummer" class="text">
                            <?php echo $row[2]; ?>
                        </span>
                             <input type="text" value="<?php echo $row[2]; ?>" class="editbox form-control" id="input_nummer" style="display: none;"/>
                        </td>
                        <td class="edit_pen">
                            <img src="pen.png" class="pen" id="pen_nummer" />
                        </td>
                    </tr></table>

我认为您的代码中的问题是"单击"和"更改时"事件之间的混合......

我们没有很多关于您的函数正在做什么以及为什么您希望在"点击时"函数中使用"更改"函数的详细信息......

如果我的想法很好,请尝试按如下方式更改您的代码:

$(document).on('click', '.edit_tr', function() {
var ID=$(this).attr('id');
$("#label_"+ID).hide();
$("#pen_"+ID).hide();
$("#input_"+ID).show();
// }).change(function()
// {
var ID = $(this).attr('id');
var IID = document.getElementById("iid").value;
var data=$("#input_"+ID).val();
var dataString = 'id=' + IID + '&field=' + ID + '&value=' + data;
$.ajax({
    type: "POST",
    url: "updnames.php",
    data: dataString,
    cache: false,
    success: function(html)
    {
    $("#label_"+ID).html(data);
    document.getElementById("pen_"+ID).src="img/dotOK.png";
   document.getElementById("pen_"+ID).width="16";
    },
    error: function(data)
    {
    alert("Error!" + dataString);
    }
});
// });
// Klick innerhalb des Labels
$(".editbox").mouseup(function()
{
return false
});
// Klick auserhalb des Inputfeldes
$(document).mouseup(function()
{
$(".editbox").hide();
$(".text").show();
$(".pen").show();
});

希望对您有所帮助!

最新更新