javascript - 表单验证中的文本输出跑出输出消息框

标签 javascript html css forms

我有一个表单,提交后它会在一个框中显示结果,但是当我在文本框 (textarea) 中输入太多信息(文本)时,它会在输出中超出框。我认为可行的解决方案是将页面底部的 id="output"的样式修改为 width:450px,但这不起作用....还有其他建议吗? Here's the link to the form

这是代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta content="computer repair, laptop repair, wireless installation, printer installation, printer repair, system administration, website design, web administration, logo design, web application development, computer repair miami fl, web design miami fl, system administration miami fl" name="keywords"> 
    <meta name="Computer Soloution for Small Business and Home Users, Miami, Florida" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Contact Us</title>

    <!-- Bootstrap core CSS -->
    <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">

    <!-- font awesome -->
    <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css">
    <!-- font mfizz -->
    <link rel="stylesheet" href="path/to/font-mfizz/font-mfizz.css">
    <link rel="stylesheet" href="icons/flaticon.css">


    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="../../assets/js/ie-emulation-modes-warning.js"></script>

    <!-- custome css style sheet -->
    <link href="carosel_style.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->

    <!-- Custom styles for this template -->
    <link href="carousel.css" rel="stylesheet">

    <!-- google analytics code -->
    <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61593038-1', 'auto');
  ga('send', 'pageview');

        //form validation and submition
        function validateForm()
        {
            var fullName = document.forms['myForm']['name'].value;
            var emailAdd = document.forms['myForm']['email'].value;
            var subject = document.forms['myForm']['subject'].value;
            var message = document.forms['myForm']['message'].value;
            var outputMsg = "";

            var emailReg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

            //validating form fields
            if(fullName == null || fullName == "") {
                outputMsg += "Name field can not be empty!\n";
            }
            if(emailAdd == null || emailAdd == "") {
                outputMsg += "Email field can not be empty!\n";
            }
            //if email field not empty check for valid email add
            if(emailAdd != "" && !emailReg.test(emailAdd)) {
                outputMsg += "Enter a valid email address!\n";

            }
            if(message == null || message == "") {
                outputMsg += "Text field can not be empty!\n";
            }   
            if(outputMsg != "") {
                alert(outputMsg);
                return false;
            }   

            //sending data fields to php form
            var params = "name="+fullName+"&email="+emailAdd+"&subject="+subject+"&message="+message;

            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                    xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }

                xmlhttp.open("POST", "contact.php", true);
                xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)

                {
                    document.getElementById("output").innerHTML=xmlhttp.responseText;
                }
            }

            xmlhttp.send(params);

            //change the style of "ouput" id
            document.getElementById("output").style.border = "solid 1px #5A5A5A";
            document.getElementById("output").style.padding = "10px";
            document.getElementById("output").style.width = "450px";
        }       

    </script>
  </head>
<!-- NAVBAR
================================================== -->
  <body>
    <div class="navbar-wrapper">
      <div class="container">

        <nav class="navbar navbar-inverse navbar-static-top">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="#">
                    <img id="main-logo" src="img/title_logo1.png">
              </a>
            </div>
            <div id="navbar" class="navbar-collapse collapse">
              <ul class="nav navbar-nav">
                <li class="#"><a href="index.html">Home</a></li>
                <li><a href="about.html">About</a></li>
                <li><a href="contact.html">Contact</a></li>
                <li><a target="_blank" href="http://pctechtips.org">Blog</a></li>
                <li class="dropdown">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Services <span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="index.html#computer">Comuter Repair</a></li>
                    <li><a href="index.html#system">System Administration</a></li>
                    <li><a href="index.html#webdesign">Website Design</a></li>

                  </ul>
                </li>
              </ul>
            </div>
          </div>
        </nav>

      </div>
    </div>


    <!-- Carousel
    ================================================== -->
    <div id="myCarousel" class="carousel slide" data-ride="carousel">
     <div class="carousel-inner" role="listbox">
        <div class="item active">
          <img src="img/computer-keyboard-closeup-header.jpg" alt="First slide">
          <div class="container">
            <div class="carousel-caption">
              <h1>COMPUTER SOLUTIONS FOR HOME AND SMALL BUSINESS.</h1>
              <p>Professional IT Support for Home Office, and Small Bussiness. Computer Repair, Printer Repair, Network Suport, System Administration, and Web Design</p>
              <p><a class="btn btn-lg btn-primary" href="#" role="button">Get a Quote</a></p>
            </div>
          </div>
        </div>        
      </div>      
    </div>

    <!-- /.carousel -->


    <!-- Marketing messaging and featurettes
    ================================================== -->
    <!-- Wrap the rest of the page in another container to center all the content. -->

    <div class="container marketing">
        <div class="hero-unit" style="padding:20px 100px">
            <h1>Contact Us</h1>
            <p>Please send us a description of your computer problems and a we will be in touch as soon as possible with a quote:</p>       
        </div>      
      <div class="row">
          <div class="col-sm-6">
            <div class="my-form">
                <form class="form-horizontal" name="myForm"  >
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">Name:</label>
            <div class="col-sm-8">
              <input type="name" name="name" class="form-control" id="inputEmail3" placeholder="Name">
            </div>
          </div>
          <div class="form-group">
            <label for="inputPassword3" class="col-sm-2 control-label">Email:</label>
            <div class="col-sm-8">
              <input type="email" name="email" class="form-control" id="inputPassword3" placeholder="Email">
            </div>
          </div>
          <div class="form-group">
            <label for="inputPassword3" class="col-sm-2 control-label">Subject:</label>
            <div class="col-sm-8">
              <input type="text" name="subject" class="form-control" placeholder="Subject">
            </div>
          </div>

          <div class="form-group">
              <label for="inputPassword3" class="col-sm-2 control-label">Text:</label>
              <div class="col-sm-8">
                <textarea name="message" class="form-control" rows="7" placeholder="Text"></textarea>
              </div>    
          </div>
          <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
              <button type="button" class="btn btn-default" onclick="validateForm()">Send</button>
            </div>
          </div>    
            </div> 
        </form>
          </div>
          <div class="col-sm-6">

             <img id="google-img" src="https://maps.googleapis.com/maps/api/staticmap?center=Miami+Downtown,Miami,FL&zoom=13&size=500x350&maptype=roadmap&markers=color:red%7CMiami+Downtown,Miami,FL">
          </div>         
      </div><!-- /.row -->
      <div class="row">  <!-- output message rown -->           
            <div class="col-sm-6" >
                    <!-- display form result message here! -->
                    <p id="output" >
                    </p>
            </div>  
            <div class="col-sm-6">
                <!--nothing goes here!-->
            </div>      
        </div>

      <!-- FOOTER -->
      <footer>            
        <p class="pull-right"><a href="#">Back to top</a></p>
        <p>&copy; 2015 Jorge L. Vazquez &middot;<a href="#">Privacy</a> &middot; <a href="#">Terms</a></p>
      </footer>
    </div>

    </div><!-- /.container -->


    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="bootstrap/js/bootstrap.min.js"></script>
    <script src="bootstrap/assets/js/docs.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
  </body>
</html>

最佳答案

有内容需要的p元素'output'

#output{
 word-wrap:break-word;
}

break-word 允许单词中断并换行到下一行

https://developer.mozilla.org/en-US/docs/Web/CSS/word-wrap

关于javascript - 表单验证中的文本输出跑出输出消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868482/

相关文章:

javascript - 从 HTML 运行 NodeJS 代码

javascript - 添加类(class)时没有显示 li 文本

html - CSS 转换 0s(零秒)不起作用?

javascript - 如何将按钮/输入保留在图像下方?

css - 为什么我们在 CSS 中没有//注释?

javascript - Jquery 切换效果不起作用

javascript - 如何在 ReactJs 中使用组合

javascript - 如何防止用户在 Skygear 中创建表的新记录?

javascript - 如何引用 Node.js 模块内的导出函数

javascript - 如何只获取html标签?