jquery val函数从textarea获取旧值

时间:2015-11-03 12:10:53

标签: jquery html asp.net-mvc textarea html-helper

我想用备注拒绝批量记录。我使用了' textarea'用户点击页面上拒绝按钮时获取用户评论的标记。

问题是当我输入一些备注并单击提示中的“确定”按钮时,我无法获得评论文本区域的值。该值为null。当我关闭提示并再次执行此过程时,我会在输入之前获得textarea的值。 jquery代码写在HtmlHelper类文件中。

以下是jquery函数:

       $('#{0}BulkRejection').click(function () {{
                var selectedRowId = $('#{0}').jqGrid('getGridParam', 'selarrrow');
                for (var i = 0; i < selectedRowId.length; i++) {{
                    cellValue = $('#{0}').jqGrid('getCell', selectedRowId[i], '{3}');
                    var ch =  jQuery('#{0}').find('#'+selectedRowId[i]+' input[type=checkbox]').prop('checked');

                    if(ch)
                    {{
                        stringArray[i + 1] = cellValue;
                    }}
                }}
                if (stringArray.length == 0) {{
                    alert('No Record Selected');
                    return false;
                }}

                var execute = function () {{
                    alert($('#AuthRemarks').find('textarea.form-control').val() + '-' +$('#AuthRemarks').val())       

                    if ($('#AuthRemarks').val() == '') {{

                        alert('Enter the Reject Remarks');
                        $('#AuthRemarks').focus();
                    }}
                    else {{
                        $(this).dialog('close')
                        stringArray[0] = $('#AuthRemarks').val();
                        var postData = {{ values: stringArray }};
                        $.ajax({{

                            type: 'POST',                                                                
                            url: RootUrlName+'/{5}',
                            data: postData,
                            success: function (data) {{
                                alert(data.Result);
                            }},
                            dataType: 'json',
                            traditional: true
                        }});



                    $('<div title=""Confirm Box""></div>').dialog({{
                        open: function () {{
                            $(this).html('<font color=""Green"">Record(s) Rejected Successfully</font>');
                        }},
                        close: function () {{

                            $(this).remove();
                            window.location.href = RootUrlName+'/{2}'   
                        }},
                        resizable: false,
                        height: 170,
                        modal: true,
                        buttons: {{
                            'Ok': function () {{
                                $(this).dialog('close');
                                window.location.href = RootUrlName+'/{2}'  
                            }}

                        }}
                    }});
                 }}

                }}
                var cancel = function () {{
                    $(this).dialog('close')

                }}
                var dialogOpts = {{
                    buttons: {{
                        'Ok': execute,
                        'Cancel': cancel
                    }}
                }};
                if (confirm('Are you sure to reject this record(s)?')) {{
                    $('#dialog').dialog(dialogOpts);
                }}
            }});
        }});

HTML代码:

<div class='panel-body'>
   <div id='dialog' ' title='Reject Remarks' style='display: none'>                                           

     <textarea class='form-control'  rows='5'  id='AuthRemarks' 
        maxlength='250' ></textarea>
    </div>
</div>        

所以它显示&#34;输入拒绝备注&#34;即使我输入拒绝备注并单击确定按钮,因为该字段&#34; AuthRemarks&#34; value为null(参考下面给出的行)。它不是第一次工作。

  if ($('#AuthRemarks').val() == '') {{
      alert('Enter the Reject Remarks');
      $('#AuthRemarks').focus();
  }}

1 个答案:

答案 0 :(得分:0)

我最近遇到了类似的问题。 确保用户点击的 BulkRejection拒绝按钮 属于 type =&#34;按钮&#34;

可能是你的形式是 type =&#34; reset&#34; ,可以重置表单并在执行jquery函数之前将所有字段更改为默认值并将comments字段更改为null。