Jquery在输入文本中预加载值并更新它们

时间:2013-02-22 17:13:27

标签: jquery codeigniter

我有这些文本输入,其中预装了文档加载的用户信息。我的输入html如下

<div class="control-group">
     <label class="control-label" for="first_name">First Name</label>
     <div class="controls">
         <input type="text" class="account" id="first_name" placeholder="First Name">
     </div>
</div>
<div class="control-group">
     <label class="control-label" for="inputEmail">Email</label>
     <div class="controls">
        <input type="text" class="account" id="inputEmail" placeholder="Email">
     </div>
</div>

我的preload在jquery中是这样的,它在php函数中执行$ .post。这可以正常填充输入元素。

function loadUserInfo()
{
    $.post('../accounts/load_user_info_ajax', null, function(data) {
        console.log(data.message);//Test to return user id

        var user = data.message;

        $('#inputEmail').val(user.email);
        $('#first_name').val(user.name);

    }, 'json');
}

但是有一个更新btn,当我点击它时,它会向另一个函数发送$ .post。 jquery如下

$('.update').on('click',function(){

    var type = $(this).attr('id');

    if(type == "account")
    {
        postvars = {
                name:$('#first_name').val(),
                email : $('#inputEmail').val(),
            };
        url = '../accounts/update_user_account_ajax';
    }

    $.post(url, postvars, function(data) {

        console.log(data);//Test to return user id
        alert(data.message);
        var user = data.message;

    }, 'json');
});

首先我回来

function update_user_account_ajax()
{
    if ($this->input->is_ajax_request()) {

       echo json_encode("test");
    }else {
        show_404();
    }
}

但没有任何反应,我也无法从chrome调试器网络中看到任何内容。该页面也会刷新并附加一个?对你。在此先感谢您的帮助。我正在为我的php使用codeigniter。

2 个答案:

答案 0 :(得分:1)

正如@Joel_Blum所说,并且这样做: 您应该在函数return false;的正文末尾添加on('click',function(){ ...,以防止重新加载页面。

答案 1 :(得分:0)

试试这个

url :  '<?php echo site_url("accounts/update_user_account_ajax")?>