Javascript 停止提交表格

Javascript 停止提交表格,javascript,jquery,validation,Javascript,Jquery,Validation,我有一个表格,提交时应该看看文本区域是否没有文本或占位符文本 如果有,就不应该提交。类似于验证。我无法停止表单提交 $(document).ready(function () { var options = { target: '.user-status', // target element(s) to be updated with server response beforeSubmit: showRequest,

我有一个表格,提交时应该看看文本区域是否没有文本或占位符文本

如果有,就不应该提交。类似于验证。我无法停止表单提交

$(document).ready(function () {
    var options = {
        target: '.user-status',
        // target element(s) to be updated with server response 
        beforeSubmit: showRequest,
        // pre-submit callback 
        success: showResponse,
        // post-submit callback 
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        resetForm: true // reset the form after successful submit 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    };

    $('#updateStatus').submit(function () {
        $(this).ajaxSubmit(options);
        return false; // prevent a new request
    });

    function showRequest(formData, jqForm, options) {

        var textbox = $('#StatusMessageMessage').val();
        if ((textbox == '') || (textbox == "What have you been eating ?")) {
            alert(text);
            return false;
        } else {
            $('#StatusMessageMessage').attr('disabled', true);
        }

    }

    function showResponse(responseText, statusText, xhr, $form) {
        $('#StatusMessageMessage').attr('disabled', false);
    }

    statusMEssagebox();


});



function statusMEssagebox() {
    var textholder = $('#StatusMessageMessage').val();

    $('#StatusMessageMessage').focus(function () {
        if ($(this).val() == textholder) $(this).val("");

        $(this).animate({
            "height": "48px",
        }, "fast");
        $('.share').slideDown("fast");
        $(this).TextAreaExpander(48, 75);

    });

    $('#StatusMessageMessage').blur(function () {
        if ($(this).val() == "") {
            $(this).val(textholder);
            $('.share').slideUp("fast");
            $(this).animate({
                "height": "18px",
            }, "fast");
        }
    });
}

您使用的是相等运算符,而不是比较运算符

这:

应该是:

if (textbox == '' || textbox == "What have you been eating ?") {

您可能还想了解如何使用jQuery通过Ajax提交表单:


我看到您正在使用jquery表单插件对表单进行ajaxify。文档中有一个例子说明了如何以优雅的方式实现这一点。您不需要订阅表单的
.submit
事件,然后使用
.ajaxSubmmit
手动提交。您可以简单地尝试以下方法:

$(function() {
    $('#updateStatus').ajaxForm({ 
        beforeSubmit: function(formData, jqForm, options) {
            var value = $('#StatusMessageMessage').val();
            if (value == '' || value == 'What have you been eating ?') {
                return false;
            }
        }
    });
});

谢谢所以我应该把它放在提交而不是点击上?不会在提交或单击时尝试。In应该位于
$(document).ready
中,如我的示例所示。您只需声明
updateStatus
将是一个ajax表单,这意味着当表单提交时,它将发送一个ajax请求,而不是普通请求。我们还订阅了
beforeSubmit
事件,该事件允许我们在出现验证错误时取消提交。该事件已在文档内部就绪。我已经编辑了代码。现在,当验证失败时,它将发送一个普通请求,而不是ajax(在您的示例中,您订阅的是表单的.submit事件,这不是我建议的。在我的示例中,我在
$(文档)中调用
.ajaxForm
。准备好了。
。哎哟。明白了。只是好奇。有什么好处?我更改了它。但它不会停止表单通过正常提交进行提交(在这里尝试ajax)
$(function() {
    $('#updateStatus').ajaxForm({ 
        beforeSubmit: function(formData, jqForm, options) {
            var value = $('#StatusMessageMessage').val();
            if (value == '' || value == 'What have you been eating ?') {
                return false;
            }
        }
    });
});