使用onclick事件 - jquery的响应绑定文本框

时间:2015-08-21 05:42:56

标签: javascript jquery html view

我的视图页面中有一个文本框。当我点击imageIcon时,它将从数据库获取数据并成功返回警报。但是,当我尝试将此响应数据绑定到文本框时,它没有正确绑定。我在视图页面中的代码如下:

@foreach (var dateitem in list)
                    {                        
                            <td id="HoursTxt">
                                @Html.TextAreaFor(modelitem => dateitem.Hours, new { id = string.Format("txtHours"), style = "width:50%;height:70%;" }) 
                                @Html.Hidden("CuDate", dateitem.Date)
                                    <img src="~/Images/comment.png" class="prevtest" />
                                <div style="border:solid;display:none;">                                   
                                    <input type="text" id="TxtNotess" />
                                    <input type="button" id="BtnComment" value="Save" />
                                </div>
                            </td>
             }

在imageIcon的onclick事件中,jquery如下:

$('.prevtest').on('click', function () {        
        var Cudate = $(this).prev('#CuDate').val();
        var ProjId = parseInt($(this).parents('tr').find('input[type="hidden"]').val());
        var TskId =parseInt($(this).parents('tr').find('td').find('#testTaskId').val());       
        $.ajax({
            type: "POST",
            url: "/Timesheet/GetComments?ProjectId=" + ProjId + "&TaskId= " + TskId + "&date= " + Cudate,
            success : function(data)
            {
                alert(data);
                $('#TxtNotess').val(data);
                alert('success');
            },
            error:function()
            {
                alert('Error');
            }
        });
        $(this).next().toggle();
    });

id为TxtNotess的文本框未与响应值绑定 任何人都可以帮我这样做.. 提前谢谢..

2 个答案:

答案 0 :(得分:2)

首先:元素的ID必须是唯一的,因此请使用文本字段TxtNotess的类。

<input type="text" class="TxtNotess" />

然后,在成功处理程序中,在单击元素的下一个兄弟中找到带有类TxtNotess的textfild

$('.prevtest').on('click', function () {
    var Cudate = $(this).prev('#CuDate').val();
    var ProjId = parseInt($(this).parents('tr').find('input[type="hidden"]').val());
    var TskId = parseInt($(this).parents('tr').find('td').find('#testTaskId').val());
    $.ajax({
        type: "POST",
        url: "/Timesheet/GetComments?ProjectId=" + ProjId + "&TaskId= " + TskId + "&date= " + Cudate,
        context: this,//pass a custom context to the ajax handlers - here the clicked element reference
        success: function (data) {
            alert(data);
            $(this).next().find('.TxtNotess').val(data);//find the target textfield
            alert('success');
        },
        error: function () {
            alert('Error');
        }
    });
    $(this).next().toggle();
});

答案 1 :(得分:0)

$('.prevtest').on('click', function () {
    var Cudate = $(this).prev('#CuDate').val();
    var ProjId = parseInt($(this).parents('tr').find('input[type="hidden"]').val());
    var TskId = parseInt($(this).parents('tr').find('td').find('#testTaskId').val());
    $.ajax({
        type: "POST",
        url: "/Timesheet/GetComments?ProjectId=" + ProjId + "&TaskId= " + TskId + "&date= " + Cudate,
        context: this,//pass a custom context to the ajax handlers - here the clicked element reference
        success: function (data) {
            alert(data);
            $('.TxtNotess').val(data);//find the target textfield
            alert('success');
        },
        error: function () {
            alert('Error');
        }
    });
    $(this).next().toggle();
});

我通过使用textbox的类名来解决..