javascript给出奇怪的输出

时间:2015-04-29 09:44:56

标签: javascript

我对javascript有这个奇怪的问题。我写了一个代码,检查用户输入的文本是否良好,一段时间后,消息说是否好消失了,有什么建议吗?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <ul style="text-align:"right" dir="rtl">
    <script type="text/javascript">
        function validate() {
            var ok = true;
            if (FirstName() == false) {
                ok = false;
            }
        }
        function FirstName() {
            document.getElementById("firstName").innerHTML = "";
        var firstName = document.getElementById("firstName").value;
        var length = firstName.length;
        if (length < 2) {
            document.getElementById("firstN").innerHTML = "not good";
            return false;
        }
        else {
            document.getElementById("firstN").innerHTML = "good";
        }
        return true;
        }
    </script>
</head>
<body>

    <form id="form1" runat="server" onsubmit="return validate()" action="Default2.aspx">
    <div>
    enter you first name
    <input type="text" id="firstName"  />
     <label id="firstN"></label>
     <br />
     <input type="submit" value="send"/> 
    </div>
    </form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

好吧,

请记住,当您在表单中提到操作时,控件将在遇到“TRUE”时转移到其中提到的页面。 如果您仍希望看到“好”,则可以删除操作。

为了让您的代码正常工作,您可以按照以下方式进行更改,

    <script type="text/javascript">
        function validate() {
            if (FirstName() == false) {
                return false;
            } else {
            	return true;
            }
        }
        function FirstName() {
            document.getElementById("firstName").innerHTML = "";
        var firstName = document.getElementById("firstName").value;
        var length = firstName.length;
        if (length < 2) {
            document.getElementById("firstN").innerHTML = "not good";
            return false;
        }
        else {
            document.getElementById("firstN").innerHTML = "good";
        }
        return true;
        }
    </script>
 

OR,

您可以使用更好,更省时的jQuery验证,

jQuery Form Validation example

jQuery Validate Options

答案 1 :(得分:0)

提交操作会刷新页面,这就是您暂时只能看到该页面的原因。 如果你想留在那个页面上,你必须使用异步表单。

阅读本文 http://blog.teamtreehouse.com/create-ajax-contact-form

和此https://learn.jquery.com/ajax/ajax-and-forms/