2015-11-03 2 views
0

Я хочу отклонить объемные записи с замечаниями. Я использовал тег 'textarea' для получения комментариев пользователя, когда пользователь нажимает кнопку отклонения на странице.Функция jquery val получает старое значение из 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>   

Так он показывает сообщение "Enter Отклонить Примечания", даже если я ввожу отклонять замечания и нажмите кнопку ОК, Поскольку поле «AuthRemarks» имеет значение null (см. Приведенную ниже строку). Он работает не в первый раз.

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

У вас нет другого элемента на вашей странице с идентификатором AuthRemarks? – JB06

+0

Уверен, нет другого элемента с идентификатором AuthRemarks. –

ответ

0

У меня недавно возникла аналогичная проблема. Убедитесь, что кнопка BulkRejection Reject, на которую пользователь нажимает , имеет номер type = "button".

Это может быть, что в вашей форме она имеет типа = «сброс» который можно перезагрузкой форму и изменяя все поля их значения по умолчанию и поле для комментариев к нулю перед выполнением функции JQuery.

Смежные вопросы