代码之家  ›  专栏  ›  技术社区  ›  Harsha M V

待提交停止表格

  •  0
  • Harsha M V  · 技术社区  · 14 年前

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

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

    $(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");
            }
        });
    }
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Darin Dimitrov    14 年前

    我看到您正在使用jquery表单插件来微开您的表单。有一个 example 在说明如何以优雅的方式实现这一点的文档中。您不需要订阅 .submit 表单的事件,并使用 .ajaxSubmmit . 您可以简单地尝试一下:

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

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

    这是:

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

    应该是:

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

    您还可能希望了解如何使用jquery通过Ajax提交表单: