退出javascript功能无法正常工作

时间:2014-06-02 01:46:49

标签: javascript jquery

我有这个javascript函数:

function displayMessage() {
    var message = $("#msg").val();

    if (message == "") { 
        alert("You need to enter a message");//alert the user
        return false;
    }

    postData = {
        "message": message,
    };    

    ...

}

希望实现的是,如果输入字段为空,则显示警报并保留在函数中。如果不是则继续。 我的提交按钮链接到另一个页面,但无论if语句中发生了什么,都会显示此页面。

这是表格代码:

<form id="post" action="http://localhost:8080/uploadNewMessage" method="post">
    <fieldset>
        <div data-role="fieldcontain">
            <label for="msg" class="input">Message:</label>
            <input type="text" name="msg" id="msg" size="10"/>
        </div>
        <a href="profile-page.html" id="submit" data-role="button" data- theme="b">Submit</a>
    </fieldset>
</form>

和完整的javascript代码只是包含:

$(document).ready(function() {
    // 1. The Registration button
    $("#submit").bind('click', function(event) {

        displayMessage();

    });

});

function doPostRequest(postData) {

    $.ajax({

        type: "POST",
        url: URL,
        dataType: "json",
        data: postData

    });
}

function displayMessage() {
    var message = $("#msg").val();

    if (message == "") { 
        alert("You need to enter a message");//alert the user
        return false;
    }

    postData = {
        "message": message,
    };    

    ...
    doPostRequest(postData);
}

3 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

$("#submit").bind('click', function(event) {
    var message = $.trim($("#msg").val());
    if(!message.length) {
        alert("You need to enter a message");
        return false;
    }
    else {
        event.preventDefault();
        doPostRequest({"message":message});
    }
});

答案 1 :(得分:1)

<强> demo

$(function() {
    $("#submit").on('click', function(event) {
        event.preventDefault(); // prevent default anchor behavior
        displayMessage();
    });
});

还有:

function displayMessage() { 
    var message = $.trim( $("#msg").val() ); // trim whitespaces
    if (message === "") { 
        alert("You need to enter a message");
    }else{                              // Use the else statement
      doPostRequest({
        "message" : message
      });   
    }
}

答案 2 :(得分:0)

通过event事件处理程序传递的click变量包含一个名为preventDefault的函数。如果您不希望表单提交,请调用此表单(event.preventDefault())。这将阻止提交按钮提交表单。

相关问题