Ajax:使用onclick jQuery不断刷新div

时间:2015-09-30 15:03:26

标签: javascript jquery html ajax

我一直在尝试按下按钮后刷新div内容,但它只发生一次,需要刷新页面再次单击按钮刷新内容。我是AJAX的新手,请帮我解决这个问题。

这是我的HTML:

<li id="personal-info" class="personal-info-wrapper">
    <div class="profile_content" id="personal-info-contents"> 
      **more codes to follow....**
      **at last**
    <tr class="pro-info-set">
        <td class="info-group-left">
            <input class="form-control" type="text" id="js_personal_title" name="js_personal_title">
        </td>
        <td class="info-group form-inline">
            <input class="form-control" type="text" id="js_personal_desc" name="js_personal_desc">
            <input id="submit_person" class="form-control" type="button" value="Add">
            <label id="submit_person_msg" value="Add"></label>
        </td>                                       
    </tr>
       <?php }  ?>
</table>

这是我的JS

$("#submit_person").click(function(e){
    e.preventDefault();
    js_personal_title = $("#js_personal_title").val();
    js_personal_desc= $("#js_personal_desc").val();
    if (js_personal_title !== null && js_personal_title !== "") {
        if (js_personal_desc !== null && js_personal_desc !== "") {
            var datastr = 'js_personal_title='+js_personal_title + '&js_personal_desc='+js_personal_desc; 
            $.ajax({
                type: "POST",
                url: "<?php echo base_url().'index.php/Jobseeker/add_personal' ?>",
                data: datastr,
                success:function(e) {
                    //e.preventDefault();
                    $(".personal-info-wrapper").load(location.href  + " #personal-info-contents");
                }
            });
        } else { alert('Please enter the decription');}
    } else { alert('Please enter the title');}
return false;
});

1 个答案:

答案 0 :(得分:2)

您正在清除li元素中的所有元素,并用新元素替换它们。你的老听众都不见了。您必须重新附加侦听器或使用委派。例如,更改此:

 $("#submit_person").click(function(e){

为此:

 $('.personal-info-wrapper').on('click','#submit_person', function(e) {

这假设.personal-info-wrapper永远不会被取代。