0

我正在使用以下代码插入评论:

<div id="2" class="789678">
    <div id="dynamic2">
        <span class="error" style="display:none">Please Enter Valid Data</span>
        <span class="success" style="display:none">Submitted Successfully</span>
        <form action="http://localhost/ci/index.php/#"
        method="post" accept-charset="utf-8" name="commentform" id="commentform">
            <div style="display:none">
                <input type="hidden" name="token" value="552e5dab8e50b8263c8b7ba548adaf5b">
            </div>
            <p>
                <label for="Name">Name</label>
                <br>
                <input type="text" name="name" value="" id="name" size="30" placeholder="Please Enter Name or Nick name"
                class="required">
            </p>
            <p>
                <label for="email">Email Address</label>
                <br>
                <input type="text" name="email" value="" id="email" size="30" placeholder="Enter Email Address"
                class="required">
            </p>
            <p>
                <label for="comment">comment</label>
                <br>
                <textarea name="content" cols="40" rows="5" id="content" col="180" placeholder="Post Your Comment"
                class="required"></textarea>
            </p>
            <input type="hidden" id="post_id" name="post_id" value="2">
            <input type="hidden" id="num" name="num" value="789678">
            <button name="button" type="reset" id="button" value="true">Add Comment</button>
        </form>
    </div>
    <input type="button" id="adcom" value="Add Comment" style="display: none; ">
</div>

以下是我在不刷新页面的情况下提交页面的 jQuery 代码。它工作正常,但我需要添加无效的验证,并且它也没有显示任何错误:

<script>
    $("#button").live("click", function (e) {
        e.preventDefault();
        $("#commentform").validate();
        var currentId = $(this).parent().parent().parent().attr('id');
        var num = $('#num').val();
        var email = $('#email').val();
        var post_id = $('#post_id').val();
        var name = $('#name').val();
        var content = $('#content').val();
        var token = $('input[name="token"]').val();
        var dataString = 'num=' + num + '&email=' + email + '&content_id=' + post_id + '&name=' + name + '&content=' + content + '&token=' + token;
        $.ajax({
            type: "POST",
            url: "http://localhost/ci/index.php/mobiles/mobile_insert_comment/",
            data: dataString,
            success: function (result) {
                $("#commentform").remove();
                //$("#dynamic"+currentId).text(' successfully submitted');
                $('.success').fadeIn(200).show();
                $('.error').fadeOut(200).hide();
            }
        });
        return false;
    });
</script>

我正在使用以下 jQuery 验证插件:

 <script type="text/javascript"
 src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
4

2 回答 2

1

如果您可以将 php 端托管在公共而不是 localhost 上,则可以使用jsFiddle模拟您的问题,我会探索类似的东西

$.ajax({

        type: "POST",

            url: "http://localhost/ci/index.php/mobiles/mobile_insert_comment/",

            data: dataString,

        success: function(result) {

            $("#commentform").remove();

            //$("#dynamic"+currentId).text(' successfully submitted');

            $('.success').fadeIn(200).show();

             $('.error').fadeOut(200).hide();

                            }

        }).done(function (response) {

            console.log(response);

        });

如果您的响应以 JSON 编码形式出现,则可能使用 jQuery.parseJSON(response) 。查看此 AJAX 调用的结果很可能会为您指明下一步的正确方向。

于 2012-06-15T21:04:45.770 回答
0

codeigniter 有一个表单验证类。这里有一个很好的教程:http://codeigniter.com/user_guide/libraries/form_validation.html 我建议你看一下。请记住,要验证每个字段的表单必须通过验证并出现在表单验证规则中。

  • 查看您的代码,您的按钮 id='button' 类型 'reset' 看起来很奇怪。只需添加评论,然后使用您的 javascript/ajax 处理程序来形成帖子数据并发送到您的网站。

  • 使用 javascript 对象表示法将 ajax 帖子的数据对象作为数据对象发送并不是一个坏主意。例如 var data = {'email':$('#email').val(),'name':$('#name').val()} 等您的字符串看起来像是格式化为 GET 字符串,而不是 POST。

于 2012-07-12T12:51:25.327 回答