2015-11-03 130 views
0

我想用批注拒绝批量记录。当用户点击页面上的拒绝按钮时,我使用'textarea'标签来获取用户的评论。jquery val函数从textarea获取旧值

问题是当我键入一些备注并在提示中单击确定按钮时,我无法获得注释textarea的值。该值为空。当我关闭提示并再次执行此过程时,我会在输入之前得到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(); 
    }} 
+0

您确定自己的页面上没有另外一个id为AuthRemarks的元素吗? – JB06

+0

我相信,没有其他元素的id为AuthRemarks。 –

回答

0

我最近遇到过类似的问题。 请确保BulkRejection拒绝按钮用户点击 是类型=“按钮”

这可能是因为在你的形式,它是 类型=的“复位”可能被重置的形式和不断变化的各个领域的默认值和评论领域的jQuery函数执行之前为null。