3

我正在尝试使用 jQuery-ajax 发布表单,并且在单击发布表单时出现此错误。 TypeError: Value does not implement interface HTMLInputElement 这是我的 JavaScript 代码:

 $('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>
4

5 回答 5

18

如果您在 ajax 请求中发送 jQuery 对象,则可能会生成此错误。因此,在您的情况下c_idc_name, 或c_description中的一个很可能是表示输入字段而不是.val()输入元素值的 jQuery 对象。

于 2013-09-20T20:41:37.617 回答
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');
        }
    });
});
于 2013-09-26T10:01:51.913 回答
0

检查下面的代码。您的代码中缺少 id="response" 的 span 或 div 并将 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>
于 2013-07-31T13:01:04.480 回答
0

您的表单在 HTML 代码中包含服务器端 PHP 代码。

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:值未实现接口 FormData

于 2013-07-31T12:55:22.583 回答
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');
            }
        });
    });
});

希望它会有所帮助

于 2013-07-31T12:58:03.063 回答