Jquery表单提交没有采取适当的行动

时间:2011-03-25 13:59:07

标签: php jquery ajax zend-framework

我正在使用带有两个动作的控制器。一个是显示视图的持有者,另一个是执行事件的动​​作。所以我的控制器喜欢这样:

public function showAViewAction(){
    //empty
}

public function addUserAction(){
         //Code to create a user
}

以下是表单代码:

<p>
    <?php if(!empty($this->errorMessage)) : ?>
        <img src="/images/view/exclamation.png" alt="error" style="vertical-align:middle;"/>
        <span style="color:#f00;"><?php echo $this->errorMessage; ?></span>
    <?php endif; ?>
    </p>
<br />
<form id="addUserForm" method="post" enctype="multipart/form-data">
    <p>This section is a disclaimer for requesting obscure data......</p>
    <br />
    <p><strong>username:</strong></p>
    <input type ="text" name ="username" id="username"/>
    <input type ="text" name ="password" id="password" />
    <input type="submit" name="addUserBtn" id="addUserBtn" value="Add User" />
</form>

现在在显示的视图中我创建了一个表单。我正在使用jquery将表单请求发送到我的控制器中的addUser操作。它看起来像这样:

<script type="text/javascript">
$(document).ready(function() {
    newRequestValidator = $('#addUserForm').validate({
        rules: {
            username: 'required',
            password: 'required'
        },
    submitHandler: 
        function(form) {

            var options = {
                url: 'add-user',
                dataType: 'json',
                success: showUser
            };
            $(form).ajaxSubmit(options);
        }
    });
});
function showUser(data) {

    window.location = '/user/';

}
</script>

问题是当我单击表单上的提交按钮时,它会点击showView操作而不是addUser操作。我做错了什么?

3 个答案:

答案 0 :(得分:2)

您的操作未正确命名?

public function showAView(){
    //empty
}

public function addUser(){
         //Code to create a user
}

应该是

public function showAViewAction(){
    //empty
}

public function addUserAction(){
         //Code to create a user
}

修改

如果您错误地访问它们,则需要使用add-user而不是addUser

答案 1 :(得分:1)

尝试将“add-user”中的“url”选项更改为“/ user / add-user”。如果您在firebug或chrome的内置检查器中检查请求,那么您应该看到请求格式错误。

答案 2 :(得分:0)

您是否正在将验证插件添加到源代码中?

 <script src="jquery.validate.min.js" type="text/javascript" ></script>

您可以从此处http://plugins.jquery.com/project/validate

下载