【问题标题】:jquery val function gets the old value from textareajquery val 函数从 textarea 获取旧值
【发布时间】:2015-11-03 12:10:52
【问题描述】:

我想拒绝带有备注的批量记录。当用户单击页面上的拒绝按钮时,我使用“textarea”标签来获取用户的 cmets。

问题是当我输入一些注释并在提示中单击确定按钮时,我无法获取注释文本区域的值。该值为空。当我关闭提示并再次执行此过程时,我会在输入之前获得 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>        

因此,即使我输入拒绝备注并单击确定按钮,它也会显示“输入拒绝备注”消息,因为字段“AuthRemarks”值为空(请参阅下面给定的行)。它不是第一次工作。

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

【问题讨论】:

  • 您确定您的页面上没有其他 ID 为 AuthRemarks 的元素吗?
  • 我确定,没有其他 id 为 AuthRemarks 的元素。

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


【解决方案1】:

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

在你的形式中它可能是 type="reset" 可以在 jquery 函数执行之前重置表单并将所有字段更改为其默认值并将 cmets 字段更改为 null。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    相关资源
    最近更新 更多