从Form Open Tag发布使用jQuery

时间:2012-03-27 16:36:07

标签: php jquery codeigniter

所以我看到这篇帖子有助于回答我的部分问题但是现在我的表单仍然没有使用jquery发布表单。

How to remove the action attribute in the form_open_multipart() in Codeigniter?

这是在页面打开时呈现的html以及创建它的php标记。

<?php $attributes = array('class' => 'validate', 'id' => 'pmForm'); ?>
<?php echo form_open('', $attributes ); ?>

<form id="pmForm" class="validate" accept-charset="utf-8" method="post" novalidate="novalidate">

* Validate the form when it is submitted
*/
var validateform = $("#pmForm").validate({
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            var message = errors == 1
            ? 'You missed 1 field. It has been highlighted.'
            : 'You missed ' + errors + ' fields. They have been highlighted.';
            $('.box .content').removeAlertBoxes();
            $('.box .content').alertBox(message, {type: 'warning', icon: true, noMargin: false});
            $('.box .content .alert').css({
                width: '100%',
                margin: '0',
                borderLeft: 'none',
                borderRight: 'none',
                borderRadius: 0
            });
        } else {
            $('.box .content').removeAlertBoxes();
        }
    },
    showErrors : function(errorMap, errorList) {
        this.defaultShowErrors();
        var self = this;
        $.each(errorList, function() {
            var $input = $(this.element);
            var $label = $input.parent().find('label.error').hide();
            $label.addClass('red');
            $label.css('width', '');
            $input.trigger('labeled');
            $label.fadeIn();
        });
    },
    submitHandler: function(form) {
        var dataString = $('#pmForm').serialize();
        $.ajax({
            type: 'POST',
            url: '/path/to/my/php/submitfunction',
            data: dataString,
            dataType: 'json',
            success:  function(data) {
                if (data.error) {
                    $('.box .content').removeAlertBoxes();
                    $('.box .content').alertBox(data.message, {type: 'warning', icon: true, noMargin: false});
                    $('.box .content .alert').css({
                        width: '',
                        margin: '0',
                        borderLeft: 'none',
                        borderRight: 'none',
                        borderRadius: 0
                    });
                }
                else
                {
                    $('.box .content').removeAlertBoxes();
                    $('.box .content').alertBox(data.message, {type: 'success', icon: true, noMargin: false});
                    $('.box .content .alert').css({
                        width: '',
                        margin: '0',
                        borderLeft: 'none',
                        borderRight: 'none',
                        borderRadius: 0
                    }); 
                    $(':input','#pmForm')
                    .not(':submit, :button, :hidden, :reset')
                    .val('');  
                }
            }
        });
    }
});

关于为什么不使用jQuery发布的任何想法?

还在试图弄清楚如何处理这个问题?

2 个答案:

答案 0 :(得分:0)

嗯...这可能是一个愚蠢的问题,但你是不是要放弃打开/关闭脚本标签?如果没有,那可能是你的问题。

答案 1 :(得分:0)

您可以尝试更改以下网址:

url : <?=site_url('Controller/Function');?>

我希望它有效