2015-04-29 3 views
0

У меня есть эта странная проблема с 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>

+0

Что вы хотите, чтобы код отображался точно? Ваш вопрос очень неясен. –

+0

Я хочу проверить, что вход пользователя имеет не менее двух букв. –

+0

. Что означает 'document.getElementById (« firstName »). InnerHTML =" ";' предполагается использовать на входе? – Bolza

ответ

0

Передать действие обновляет страницу, поэтому вы видите только то, что на мгновение. Вам нужно работать с формой async, если вы хотите остаться на этой странице.

Читать эту http://blog.teamtreehouse.com/create-ajax-contact-form

и этот https://learn.jquery.com/ajax/ajax-and-forms/

+0

спасибо человеку :) –

+0

Отметьте ответ как решение, если решает проблему. – Bolza

1

Ну

Пожалуйста, помните, как вы уже упоминали действие в форме, то управление передается на странице, указанной в нем, когда «TRUE» встречается. Если вы все еще хотите увидеть «хорошо», вы можете удалить действие.

Таким образом, чтобы ваш код работает, вы можете изменить его, как показано ниже,

<script type="text/javascript"> 
 
     function validate() { 
 
      if (FirstName() == false) { 
 
       return false; 
 
      } else { 
 
      \t 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>

ИЛИ

Вы можете использовать JQuery Validation, которая намного лучше и меньше занимающееся производством

jQuery Form Validation example

jQuery Validate Options

+0

На самом деле, я удалил действие из кода, но код, казалось, отправил его на другую ссылку. Я предполагаю, что предварительная проверка является ответом на это, как вы упомянули –

Смежные вопросы