jQuery设置输入字段值

时间:2013-08-22 14:38:06

标签: java jquery ajax json spring

我有一个用于编辑用户的表单,我想将数据库中的用户数据插入表单的字段中。我做的是

链接

<a href="javascript:void(0)" onclick="editUser('/edit/${user.login}')">Edit</a>

脚本

function editUser(url) {
$( "#edit-form" ).dialog( "open" );
$.ajax({
        url: url,
        type: "POST",
        success: function (resp) {            
        $('input[name="elogin"]').val(resp.login);
        }
    })
}

表格

<div id="edit-form" title="Edit user">
<p class="validateTips">All form fields are required.</p>
<form:form>
    <fieldset>
        <label for="elogin">Login</label>
        <input type="text" name="elogin" id="elogin" class="text ui-widget-content ui-corner-all" />
    </fieldset>
</form:form>
</div>

我的Spring控制器返回以下内容(在包装器中我有字段login

@RequestMapping(value="/edit/{userLogin}", method=RequestMethod.POST)
@ResponseBody
public Wrapper edit(@PathVariable String userLogin) {
    return wrapper.wrap(userService.findByLogin(userLogin));
}

但表格是空的。我也尝试设置手动值但仍然没用。请帮我设置输入字段值。

3 个答案:

答案 0 :(得分:0)

您应该使用帖子请求发送表单数据。

$.ajax({
    url: url,
    type: "POST",
    data:$('form').serialize(),
    success: function (resp) {            
    $('input[name="elogin"]').val(resp.login);
    }
})

答案 1 :(得分:0)

function editUser(url) {
$( "#edit-form" ).dialog( "open" );
$.ajax({
        url: url,
        type: "POST",
        success: function (resp) {            
        $('#elogin').val(resp.login);
        }
    })
}

应该正常工作,因为你已经为输入设置了一个ID。

答案 2 :(得分:0)

不太确定你的订单是否正确,你肯定会首先进行ajax调用,然后打开jQuery对话框?

无论哪种方式,您都可以按如下方式向对话框提供数据;

//call ajax method to get value you want to show.
var somevariable = etc.....
var dto = {
    loginName: somevariable
}
$( "#edit-form" ).data('params', dto).dialog( 'open' );

然后在对话框中使用open()方法。

$("#edit-form").dialog({
    bgiframe: true,
    autoOpen: false,
    height: 280,
    width: 320,
    draggable: false,
    resizable: false,
    modal: true,
    open: function () {
        //so values set in dialog remain available in postback form
        $(this).parent().appendTo("form");

        //get any data params that may have been supplied.
        if ($(this).data('params') !== undefined) {
            //stuff your data into the field
            $("#elogin").val($(this).data('params').loginName);
        }
    }
});