无法从动态创建的隐藏输入字段中获取值

时间:2014-03-16 13:01:09

标签: javascript jquery html ajax dynamic

我有一个元素,在ajax调用后在页面上动态添加,其中有一个隐藏的输入字段:

<div id='added_title'>
<b>Title</b> 
<input type='hidden' id='title_n' name='title_n' value='TITLE_NAME'/>
</div>

在ajax调用之后我需要获取输入字段值以在另一个div中显示它但没有任何事件或点击,就在ajax调用完成之后。

我试过了:

$("input[name='title_n']").val();
$("input[id='title_n']").val();
$("#title_n").val()
$("#added_title input[name='title_n']").val();

我也试过使用像这样的数据属性:

<div id='added_title' data-title = 'TITLE_NAME'>
    <b>Title</b> 
    </div>

使用以下方式访问数据:

$('#added_title').data('title');

但我总是得到“未定义”的价值。

有什么建议吗?

修改

Ajax电话:

$.ajax({
    type: 'POST',
    url: '/tools/get_title.php',
    data:  { title: title},
        success: function (response) {
            $("#title_div").html(response);
        }
});

其中“title_div”是“added_title”父级的ID。

1 个答案:

答案 0 :(得分:1)

$("#title_n").val()是获得您所追求的价值的最快捷,最简单的方式。

上面代码的问题在于$.ajax调用被触发,然后代码继续执行,包括调用隐藏输入。

然后$.ajax调用完成并触发成功事件,该事件将所述元素放在页面上。

在$ .ajax调用完成之前,您无法对隐藏元素执行任何操作,因此您应该让代码在success函数中调用的函数中处理该元素。 {1}}致电。