首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何组合2点击功能?

如何组合2点击功能?
EN

Stack Overflow用户
提问于 2013-01-12 08:17:58
回答 1查看 179关注 0票数 1

当输入电子邮件和MessageText时,我有发送信息的表单。我想使用jQuery验证引擎插件和ajax响应来返回结果。为此,我在每一种情况下都使用相同的jQuery('#messageSendButton').click()函数。

若要从控制器返回响应:

代码语言:javascript
运行
复制
<script type="text/javascript">
                jQuery('#messageSendButton').click(function () {

                    var url = '@Url.Action("SendQuickMessage", "Home")';
                    var email = $('#email').val();
                    var messageText = $('#messageText').val();

                    $.ajax({
                        url: url,
                        type: 'GET',
                        contentType: 'application/json',
                        data: { Email: email, Message: messageText },
                        success: function (result) {
                            if (result.success) {
                                alert("Message sent! Thanks!");
                            }
                            else {
                                alert("Error occured!");
                            }
                        },

                        complete: function () {
                            $(".loading").hide();
                        }
                    });
                });
            </script>

并且,为了验证表单:

代码语言:javascript
运行
复制
  <script type="text/javascript">
                jQuery(document).ready(function () {
                    jQuery('#quickMessageForm').validationEngine('init');
                    jQuery('#messageSendButton').click(function () {
                        jQuery('#quickMessageForm .loading').animate({ opacity: 1 }, 250);
                        if (jQuery('#quickMessageForm').validationEngine('validate')) {

                            jQuery.post('/Home/SendQuickMessage', {
                                Email: jQuery('#email').val(),
                                Message: jQuery('#message').val(),
                                formname: 'messageForm',
                                formtype: 'messageF'
                            }, function () {
                                jQuery('#quickMessageForm .loading').hide();
                            });

                            return false;
                        } else {
                         jQuery('#quickMessageForm .loading').animate({ opacity: 0 }, 250);
                            return false;
                        }
                    });
                });
            </script>

另外,它们都是单独工作的,但同时,函数首先工作,第二个验证工作。这不对,。我怎么才能把它们结合在一起呢?首先对表单进行验证,然后得到ajax响应。

编辑:

以下是表格:

代码语言:javascript
运行
复制
 <form action="#" method="post" id="quickMessageForm">
            <div class="form_info cmsms_input">
                <label>Email<span class="color_3"> *</span></label>
                @Html.TextBoxFor(model => model.Email, new { name = "email", id = "email", tabidex = 1, @class = "validate[required,custom[email]]" })
            </div>
            <div class="form_info cmsms_textarea">
                <label>Message<span class="color_3"> *</span></label>
                @Html.TextAreaFor(model => model.Message, new { id = "messageText", name = "messageText", tabindex = 2, @class = "validate[required,minSize[10]]" })
            </div>
            <div class="loading"></div>
            <div>
                <input type="submit" name="messageSendButton" id="messageSendButton" value="Send" class="button_small" tabindex="3" />
            </div>
        </form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-12 09:52:43

你可以试试下面的样子。

也就是说,让ajax调用async:false

代码语言:javascript
运行
复制
$.ajax({
url: restmethod,
type: "POST",
contentType: "application/json",
async:false
success: function(data) {
    return data.d; 
}
});

我希望这会对你有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14291587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档