2013-07-31 4 views
3

Я пытаюсь отправить форму с помощью jQuery-ajax и получить эту ошибку при отправке формы при нажатии. TypeError: Value does not implement interface HTMLInputElement вот мой код JavaScript:TypeError: Значение не реализует интерфейс HTMLInputElement

$('document').ready(function() { 
    $('#update').click(function() { 
     jQuery.post("update_category", { 
      c_id: c_id, 
      c_name: c_name, 
      c_description: c_description 
     }, 

     function (data, textStatus) { 
      if (data == 1) { 
       $('#response').html("Thank You!!..We Will Get Back To You Soon..!!"); 
       $('#response').css('color', 'green'); 
      } else { 
       $('#response').html("Some Error Occurred"); 
       $('#response').css('color', 'red'); 
      } 
     }); 
    }); 
}); 

моя форма:

<div id="form"> 
    <form> 
    <!-- PRONT DROP DOWN HERE !--> 
     <input type="text" name="c_id" id="c_id" disabled="disble" placeholder="'.strtoupper($r['c_id']).'" value="'.strtoupper($r['c_id']).'" ></input> 
     <input type="text" name="c_name" id="c_name" disabled="disble" placeholder="'.strtoupper($r['c_name']).'" value="'.strtoupper($r['c_name']).'"></input> 
     <textarea rows="4" class="field span10" name="c_description" id="c_description" disabled="disble" placeholder="Description">'.strtoupper($r['c_description']).'</textarea> 

    </form> 
</div> 
+0

'.strtoupper ($ г [ 'c_description']).' Это это должно быть на стороне сервера код ?! –

+0

Почему вы используете $ ('document') вместо $ (document) ?? – sinaneker

+0

yaa .strtoupper ($ r ['c_description']) Я тоже обрабатываю его на стороне сервера, и это так ... я беру его в поле формы, nd теперь отправляю его для запроса на обновление – user2488557

ответ

0

Ваша форма, содержащая код на стороне сервера PHP в HTML код.

Код PHP должен быть написан, как показано ниже.

<input type="text" name="c_id" id="c_id" disabled="disble" placeholder="<?php echo strtoupper($r['c_id']) ; ?> " value="<?php echo strtoupper($r['c_id']) ; ?> " ></input> 

Также проверьте приведенную ниже ссылку для ссылки на JQuery.

Javascript: TypeError: Value does not implement interface FormData

+0

Друг я использую codeigniter, и я получил заданный код метода контроллера, поэтому нет необходимости писать write < user2488557

0

попробовать этот

jQuery.post 

использовать данный

$.post 

здесь полного код

$(document).ready(function() { 
    $('#update').click(function() { 
     $.post("update_category", { 
      c_id: c_id, 
      c_name: c_name, 
      c_description: c_description 
     }, 

     function (data, textStatus) { 
      if (data == 1) { 
       $('#response').html("Thank You!!..We Will Get Back To You Soon..!!"); 
       $('#response').css('color', 'green'); 
      } else { 
       $('#response').html("Some Error Occurred"); 
       $('#response').css('color', 'red'); 
      } 
     }); 
    }); 
}); 

Надеется, что это поможет

+0

Нет, он все еще не работает ошибка такая же ... – user2488557

+0

@ user2488557 is c_id etc переменная определена перед использованием? –

0

Проверьте приведенный ниже код. span или div с id = "response" отсутствует в вашем коде и заменяет jquery.post на $ .post. Дайте имя файла update_category с расширением

<html> 
    <head> 
     <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
     <script type="text/javascript"> 
     $('document').ready(function(){ 
      var c_id = '1', c_name = 'test', c_description = 'testing'; 
      $('#update').click(function(){ 
       $.post("update_category.php", { 
        c_id:c_id, 
        c_name: c_name, 
        c_description: c_description          
        }, function(data){ 
         if(data == 1){ 
          $('#response').html("Thank You!!..We Will Get Back To You Soon..!!"); 
          $('#response').css('color','green'); 
         } 
         else 
         { 
          $('#response').html("Some Error Occurred"); 
          $('#response').css('color','red'); 
         } 
       }); 
      }); 
     }); 
     </script> 
    </head> 
<body> 
    <div id="form"> 
     <form> 
      <!-- PRONT DROP DOWN HERE !--> 
      <input type="text" name="c_id" id="c_id" placeholder="" value="" /> 
      <input type="text" name="c_name" id="c_name" placeholder="" value="" /> 
      <textarea rows="4" class="field span10" name="c_description" id="c_description" placeholder="Description"></textarea> 
      <input type="button" id="update" value="Update" /> 
      <span id="response"></span> <!-- This is missing in your form --> 
     </form> 
    </div> 
</body> 
</html> 
+0

Я использую codeigniter, поэтому не нужно расширение .php, просто укажите имя метода контроллера ... и i hv попробовал с $ .post все еще не получал сообщение vlue контроллеру – user2488557

+1

Как вы получаете значения c_id, c_name, c_description из формы –

18

Эта ошибка может быть сгенерирована, если вы отправляете объект JQuery в Ajax запроса. Итак, в вашей ситуации вполне вероятно, что один из c_id, c_name или c_description - это объект jQuery, представляющий поле ввода, а не значение .val() входного элемента.

+0

Это старый ответ, но я хотел бы поблагодарить вас. Это было бы хорошим ответом. –

+1

просто поддержал ваш ответ, поскольку он решил мою собственную проблему ... я ссылался на элемент не на значение ... + 1 @ milo-lamar – jcobhams

0

Попробуйте использовать значение внутри переменных

$('document').ready(function() { 
$('#update').click(function() { 
    jQuery.post("update_category", { 
     c_id: c_id.val(), 
     c_name: c_name.val(), 
     c_description: c_description.val() 
    }, 
    function (data, textStatus) { 
     if (data == 1) { 
      $('#response').html("Thank You!!..We Will Get Back To You Soon..!!"); 
      $('#response').css('color', 'green'); 
     } else { 
      $('#response').html("Some Error Occurred"); 
      $('#response').css('color', 'red'); 
     } 
    }); 
}); 
Смежные вопросы